16

我一直使用||(双管) forif (($a == $b) || ($a == $c)) { }orfor do_this() or do_that();

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

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

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

4

2 回答 2

19

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

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

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

于 2013-07-17T21:58:06.847 回答
8

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

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

于 2013-07-17T21:58:57.123 回答