本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。
php逻辑运算符之间有什么区别
php 逻辑运算符
一直认为PHP中“or”和“||”是可以划等号的,其实不然,它们存在一个优先级的差别。下面通过一个例子说明它们的差异:
<?php
$a = false || true; //'||'的优先级大于'=',先执行 false || true,然后赋值$a
$b = false or true; // 'or'的优先级小于'=',先将false赋值给$b
var_dump($a).PHP_EOL;//true
var_dump($b);//false
?>
执行后,$a为true,而$b为false。这是因为“||”的优先级大于“=”,先执行 false || true,然后将执行后的结果true赋值给$a。而“or”的优先级小于“=”,先将false赋值给$b,因此$b就为false
PHP中的逻辑“与”运算有两种形式:AND 和 &&,同样“或”运算也有OR和||两种形式。
如果是单独两个表达式参加的运算,两种形式的结果完全相同,例如 $a AND $b和$a && $b没有任何区别。同样的$a OR $b和$a || $b也完全一样。
但两种形式的逻辑运算符优先级不同,这四个符号的优先允许从高到低是:&&、||、AND、OR。特别注意,这句话要仔细理解。举例:
$a || $b AND $c || $d
相当于:
($a || $b) AND ($c || $d)