PHP或者是一个奇怪的关键字.这是一个让我困惑的代码片段:
echo 0 or 1; // prints 1 $foo = (0 or 1); echo $foo; // prints 1 $foo = 0 or 1; echo $foo; // prints 0 for some reason
为什么最后一个打印0而不是1?
这是因为操作符的优先级不同.在第三种情况下,首先处理分配.它将被解释为:
($foo = 0) or 1;
||运算符具有不同的优先级.如果你使用
$foo = 0 ||1;
它会像你期望的那样工作.