if或语句不是';t工作正常


if or statement isn't working correctly

我的if语句有问题。这是if语句:

if($userID != $_SESSION["sess_id"] || $creator != $_SESSION["sess_id"]){
echo "Success";
exit;
}

这是变量的值:

$userID = 24;
$creator = 13;
$_SESSION["sess_id"] = 13;

简而言之:

if(24 != 13 || 13 != 13){
echo "Success";
exit;
}

为什么成功还在显现?

请注意,这只是我代码的缩短版本,没有一个变量是这样设置的,但值是正确的

因为24 != 13仍然为真。对于CCD_ 2,只要其中一条边为真就足够了。

if (true || false) //true
if (true && false) //false
if (false || false) //false
if (false && false) //false

因为您使用的是||OR,只需要一个语句为true,而在您的情况下,24 != 13为true

因为您使用了"||"。这是一个"或"。您必须使用"&&"(和)。

if($userID != $_SESSION["sess_id"] && $creator != $_SESSION["sess_id"]){

满足表达式$userID != $_SESSION["sess_id"]->24 != 13(TRUE),使其传递到条件中,您使用了OR条件,执行任何一个条件true块。