我遇到了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;
}
为什么成功仍在显示?
请注意,这只是我的代码的缩短版本,没有一个变量设置如此,但值是正确的。
答案 0 :(得分:5)
因为24 != 13
仍然是真的。对于OR
,其中一方是真的就足够了。
if (true || false) //true
if (true && false) //false
if (false || false) //false
if (false && false) //false
答案 1 :(得分:1)
因为你使用的是||OR
而且只需要一个陈述是真的,在你的情况下24 != 13
是真的
答案 2 :(得分:1)
因为您使用“||”。这是一个“或”。 你必须使用“&&” (和)。
if($userID != $_SESSION["sess_id"] && $creator != $_SESSION["sess_id"]){
答案 3 :(得分:0)
表达式$userID != $_SESSION["sess_id"]
- >满足24 != 13
(TRUE)以便它进入条件,您已使用OR
条件,任何一个条件true
块都被执行。