我想知道使用单词(例如AND
,OR
)而不是等效代码(&&
,||
)进行比较是否存在任何缺点?除了后者是与许多其他编程语言兼容的语法之外,还有其他理由选择它们吗?
答案 0 :(得分:6)
AND与&&
不同例如:
<?php $a && $b || $c; ?>
和
不一样<?php $a AND $b || $c; ?>
首先是 (a和b)或c
第二个 a和(b或c)因为||优先级高于和低于&amp;&amp;&amp;
有关详细信息,请查看PHP Logical Operators和Operator Precedence
答案 1 :(得分:5)
与=
运算符一起使用时会出现意料之外的缺点。
$result = false || true; # true, $result is true
/* Translated to result = (false || true) */
和
$result = false or true; # true, $result is false
/* Translated to (result = false) or true */
答案 2 :(得分:1)
PHP手册(在Logical Operators中)讨论了你在问题中提出的问题:
“和”和“或”运算符的两种不同变体的原因是它们以不同的优先级运行。 (见Operator Precedence。)
所以区别在于优先级,而不是每个运算符的逻辑含义。
在您的示例中:(x && y || z)
和(x AND y OR z)
您将看不到两个表达式之间的任何差异。
答案 3 :(得分:0)
他们做同样的事情,但&&
和||
运算符的优先级高于AND
和OR
。
基本上我认为这会让人感到困惑,所以如果你只是坚持一种符号而不是混合它们,你就没事了,你的代码仍然可读。