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