在探讨这4个运算符之前,我们还应该引入等号=
。因为这些运算符的优先级为:||/&& > = > or/and,所以,在使用它们的时候要特别注意用括号包含子表达式。
我们都知道这4个运算符可以用作多个子表达式的条件判断,在此不再表述。现在主要探讨一下如何在PHP使用它们使得代码更加清晰简洁。
- or或者||的用法
expression or expression或者是expression || expression
只有前面的表达式为false
的时候才会执行后面的表达式。例如,需要define一个全局变量的时候
defined('VAR') or define('VAR', true);
- and或者&&的用法
expression and expression或者是expression && expression
只有前面的表达式为true
的时候才会执行后面的表达式。例如
empty($_POST['key']) && $_POST['key'] = $val;
上面的例子看来,or和||没有什么区别?区别就在于一开始提到的运算符优先级
$a = 1 or 0; // $a为1,因为=号的优先级大于or,所以该表达式先把1赋值给$a,而且没有返回false,所以后面的表达式就根本不会执行了
$a = 1 || 0; // $a为true,因为先执行1 || 0,此表达式返回true赋值给$a