use*_*702 4 php logical-operators
以下代码:
$result = (false or true);
echo("With extra parentheses: ".($result?"true":"false"));
$result = false or true;
echo("<br />With no parentheses: ".($result?"true":"false"));
Run Code Online (Sandbox Code Playgroud)
生成输出:
With extra parentheses: true
With no parentheses: false
Run Code Online (Sandbox Code Playgroud)
我不懂为什么.不应该$result = false or true;通过首先测试进行php评估false然后,因为它不是真的,继续评估true?
任何建议将不胜感激.
Bla*_*iev 14
该or操作符比赋值操作符的优先级较弱.在第二种情况下真正发生的是($result = false) or true,因此该部分or true确实没有效果.
false在这种情况下,赋值运算符会将指定的值作为结果.将赋值运算符视为产生结果的普通二元运算符(如+,<和or),唯一的区别是它具有副作用.
如果你想避免括号,你可以换or的||,它具有更强的优先级.
使用英文版逻辑运算符时要小心,因为它们的优先级不同.
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |