在下面的代码中:
$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/