今天朋友群里朋友問了下 按位與或的問題。。
PHP 工作有1年了 可能對這塊不太熟悉吧 在這里給新手朋友介紹下這部分
按位於主要是對二進制數操作。
<?php $a = 1; $b = 2; $c = $a^b; echo $c // 3 ?>
這里不是單純的相加關系
十進制 1換算成二進制 00000001
十進制 2換算成二進制 00000010
按位^ 00000011 // 就是不相同的都算成1 啦 ^_^
然后,
<?php $a = 1; $b = 2; echo $a & $c; // 1 ?>
十進制 3換算成二進制 00000011
十進制 1換算成二進制 00000001
按位& 00000001 // 就是各個位數相同的不變否則都算成0
最后介紹下用法 ; 按位&后返回值是沒意義的。 主要是用來判斷$a 是否存在於 $c // 權限用法比較多。
<?php $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.'的權力<br>'; } echo $Pri; ?>