淺析PHP 按位與或 (^ 、&)

NO IMAGE

今天朋友群裡朋友問了下 按位與或的問題。。
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;
?>