gpt4 book ai didi

php - 奇怪的 php OR 语句逻辑

转载 作者:行者123 更新时间:2023-12-02 04:08:01 24 4
gpt4 key购买 nike

刚刚注意到 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 决定这样做的原因是什么?

最佳答案

orand 的优先级低于赋值 =

因此,$answer = $bet_exists OR $unanswered_exists; 中的赋值在 or 之前处理,因此 的值$unanswered_exists 没有任何影响(在代码的第三行中)。它的执行方式类似于 ($answer = $bet_exists) OR $unanswered_exists;

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

看看 operator precedences in PHP .

关于php - 奇怪的 php OR 语句逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com