在下面的代码中:

$a = 0 or 1;
$b = 0 || 1;
echo "$a, $b"; // 0, 1

为什么$a等于零,我以为or||在PHP中是可互换的?or语句究竟发生了什么,使它返回0

我会假设两个结果都是1,使其 echo 1, 1

最佳答案

or的优先级低于=的优先级,而""的优先级低于ojit_code的优先级

因此,您的代码等效于:

($a = 0) or 1;
$b = (0 || 1);

请参阅PHP手册中的precedence table

关于PHP为什么或运算符返回0为true,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26517417/

10-16 13:45