脑补一下:位操作符(按位与,按位或,按位异或)

位操作符

位操作符可以将一个整形变量当作一系列的位(Bit,比特)来处理。在PHP中,可能发现它们并不经常使用,但是却有独特的用途如:ini 设定 error_reporting 使用了按位的值。
位操作符
例子 名称 结果
$a & $b And(按位与) 将把 $a  $b 中都为 1 的位设为 1。
$a | $b Or(按位同或) 将把 $a  $b 中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把 $a  $b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反)  $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移)  $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b Shift right(右移)  $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
逻辑操作符
操作符 名称 结果
如果 $b false ,则返回 true ,否则相反
&& 如果 $a$b 都是 true,则结果为 true,否则为 false
|| 如果 $a  $b 中有一个为 true 或者都为 true 时,其结果为 true,否则为 false
and 与&&相同,但其优先级较低
or 与||相同,但其优先级较低
xor 异或 如果 $a$btrue ,返回 true ,如果都是 truefalse ,则返回 false
用php代码演示一下:
echo "按位与 1&2:",1&2;
echo "<br />";
echo "按位或 1|2:",1|2;
echo "<br />";
echo "按位或 1|3:",1|3;
echo "<br />";
echo "按位异或 1^2:",1^2;
  运行结果:
按位与 1&2:0
按位或 1|2:3
按位或 1|3:3
按位异或 1^2:3