我总是使用||
(双重管道)代表if (($a == $b) || ($a == $c)) { }
而or
代表do_this() or do_that();
。
为什么不if (($a == $b) or ($a == $c)) { }
或do_this() || do_that();
?
有没有理由使用这两个逻辑运算符中的任何一个,或者只是个人偏好?
同样适用于&&
vs and
,我只使用&&
。
答案 0 :(得分:17)
“拼写”运算符and
和or
的优先级较低,甚至低于赋值,因此您可以使用它们来避免在很多地方编写括号。例如:
$d=$a||$b and $c
相当于($d=$a||$b) && $c
在许多情况下,它们也更具可读性。
答案 1 :(得分:8)
两个不同的版本以不同的优先级运行:
http://www.php.net/manual/en/language.operators.precedence.php