逻辑运算符-';或者';与'||';(双管)


Logical operators - 'or' vs. '||' (double pipe) in PHP

我一直用||(双管)表示if (($a == $b) || ($a == $c)) { },用or表示do_this() or do_that();

为什么不是if (($a == $b) or ($a == $c)) { }do_this() || do_that();

是否有理由使用这两个逻辑运算符中的任何一个,或者这只是个人偏好?

这同样适用于&&and,其中我只使用&&

"拼写"运算符andor的优先级更低,甚至低于赋值,因此您可以使用它们来避免在太多地方写括号。例如:

$d=$a||$b and $c相当于($d=$a||$b) && $c

它们在许多上下文中也更具可读性。

两个不同的版本以不同的优先级运行:

http://www.php.net/manual/en/language.operators.precedence.php