"AND &"运算符工作正常,但"OR |"和"非此即彼""^"始终正确



我使用逻辑运算符来测试变量,但AND&运算符工作正常,但OR|和非此即彼^始终为真
为什么?

$a = 6;
$b = 6;
if ($a OR $b == 3) {
    echo 'true <br />';
}
else {
    echo 'false <br />';
}

问题在于您的语法。

你需要分别看这个表达式。

if($a) OR if($b == 3)

就是你在做什么。

你想要的是:

if($a == 3 || $b == 3)

如果您单独查看$a,除了0之外的任何值都将返回true,由于OR

,使整个方程成为true

因为你必须对布尔结果进行OR运算——你读起来太像英语了。

if ($a == 3 || $b == 3)

而不是

if ($a OR $b == 3)

这是一个优先级问题-请参阅http://php.net/manual/en/language.operators.precedence.php点击此处了解更多详细信息。

其他两个答案都会为您提供所需的代码。

$a = true
$b = true
if($a and $b)   TRUE if both $a and $b are TRUE.

参考:http://php.net/manual/en/language.operators.logical.php

最新更新