我一直用||
(双管)表示if (($a == $b) || ($a == $c)) { }
,用or
表示do_this() or do_that();
。
为什么不是if (($a == $b) or ($a == $c)) { }
或do_this() || do_that();
?
是否有理由使用这两个逻辑运算符中的任何一个,或者这只是个人偏好?
这同样适用于&&
和and
,其中我只使用&&
。
"拼写"运算符and
和or
的优先级更低,甚至低于赋值,因此您可以使用它们来避免在太多地方写括号。例如:
$d=$a||$b and $c
相当于($d=$a||$b) && $c
它们在许多上下文中也更具可读性。
两个不同的版本以不同的优先级运行:
http://www.php.net/manual/en/language.operators.precedence.php