奇怪的PHP OR语句逻辑

淡啤酒

刚刚注意到PHP中的怪异逻辑。我使用的版本是PHP 5.6.18

代码示例:

$bet_exists = FALSE;
$unanswered_exists = TRUE;
$answer = $bet_exists OR $unanswered_exists;
if ($bet_exists OR $unanswered_exists)
    $result = TRUE;
} else {
    $result = FALSE;
}
var_dump($answer);
var_dump($result);

打印输出如下:

boolean false
boolean true

您是否知道这种行为,PHP决定这样做的原因是什么?

生病的

or并且and优先级低于分配=

所以在分配$answer = $bet_exists OR $unanswered_exists;处理之前or,因此的价值$unanswered_exists没有任何影响(在你的代码的第三行)。它像一样执行($answer = $bet_exists) OR $unanswered_exists;

使用||&&代替。像一样$answer = $bet_exists && $unanswered_exists;,可以产生预期的结果。

并查看PHP中的运算符优先级

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章