逻辑运算符或vs || (双管)在PHP中

时间:2013-07-17 21:52:37

标签: php logical-operators

我总是使用||(双重管道)代表if (($a == $b) || ($a == $c)) { }or代表do_this() or do_that();

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

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

同样适用于&& vs and,我只使用&&

2 个答案:

答案 0 :(得分:17)

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

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

在许多情况下,它们也更具可读性。

答案 1 :(得分:8)

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

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