区别:1、and和“&&”运算符都用于表示逻辑与,and的优先级较低,“&&”的优先级较高;2、or和“||”运算符都用于表示逻辑或,or的优先级较低,“||”的优先级较高;3、“$”运算符用于表示逻辑非;4、xor运算符用于表示逻辑异或。

本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。

php逻辑运算符之间有什么区别

php 逻辑运算符

03.png

一直认为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)


php逻辑运算符之间有什么区别