[PHP基础]位运算符|、&和逻辑运算符||、&&的区别

位运算符

在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,不再判断右边的结果。而位运算符则不存在短路问题,左右两边都要执行。

标签: PHP基础

发表评论: