**& 按位与,相同的不变,否则都算成0
| 按位或,
^ 按位异或,不相同的都算成1**
PHP按位与或 (^ 、&)运算也是很常用的逻辑判断类型,有许多的PHP新手们或许对此并不太熟悉,今天结合一些代码对PHP与或运算做些介绍,先说明下,在PHP中,按位与主要是对二进制数操作:
$a = 1;
$b = 2;
$c = $a^b;
echo $c // 3
?>
十进制1换算成二进制为:00000001
十进制2换算成二进制为:00000010
按位^ 00000011,就是把不相同的都算成1,然后:
$a = 1;
$b = 2;
echo $a & $c; // 1
?>
十进制3换算成二进制为:00000011
十进制1换算成二进制为:00000001
按位& 00000001,就是各个位数相同的不变,否则都算成0,按位“&”后返回值是没意义的,主要是用来判断$a 是否存在于 $c,权限用法比较多:
$my_privilege = 15; // 1+2+4+8 拥有全部权限
$Pri = ”;
$privilege_arr = array(8=>’增’, 4=>’删’,2=>’改’,1=>’查’);
foreach($privilege_arr as $k =>$v){
$k & $my_privilege && $Pri .= ‘我有’.$v.’的权力
‘;
}
echo $Pri;
?>
通过一个值就可以区分出很多字段
> $a = hexdec(‘0x10c04000’);
> $b = ($a & 0x0FF00000) >20;
> $c = ($a & 0x000FF000) >12;
> var_dump($a, $b, $c);
> 输出:
> int 281034752
> int 12
> int 4
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/115740.html