位运算符
在PHP中,|
和&
被称为位运算符,两者的含义如下:
|
:参加运算的两位运算量有一位为1时,该位为1,否则为0&
:参加运算的两位运算量相应位均为1时该位为1,否则为0
先将运算量转为二进制进行然后进行位对比,看下面的列子:
<?php
$a = 10; //二进制为:00000000 00000000 00000000 00001010
$b = 20; //二进制为:00000000 00000000 00000000 00010100
$c = $a | $b; //二进制为:00000000 00000000 00000000 00011110
echo $c; //上面的二进制位运算后结果为30
逻辑运算符
||
:逻辑或,左右两边参数都为FALSE
,返回FALSE
,否则返回TRUE
&&
:逻辑或,左右两边参数都为TRUE
,返回TRUE
,否则返回FALSE
两者区别
逻辑运算符存在短路问题,比如在进行逻辑或(||
)运算的时候,如果左边为TRUE
,就直接返回TRUE
,不再判断右边的结果。而位运算符则不存在短路问题,左右两边都要执行。