位元操作是程式設計中對位模式位元或二進位數的一元和二元操作。在許多古老的微處理器上,位元運算比加減運算略快, 通常位元運算比乘除法運算快很多。在現代架構中,位元運算的運算速度通常與加法運算相同(仍然快於乘法運算)。
^:位元異或。將值轉換為二進位後進行比較,相同位置只要有一個為1則該位置結果為1,否則為0。舉例如下:
$a=1;//二进制为00001 $b=2;//二进制为00010 echo $a^$b;// 00011 就是3,因此输出3
&:按位與。將值轉換為二進位後進行比較,相同位置只有兩個全為1則該位置結果為1,否則為0。舉例如下:
$a=1;//二进制为00001 $b=2;//二进制为00010 $c=3;//二进制为00011 echo $a&$b;// 00000 就是0,因此输出0 echo $a&$c;// 00001 就是1,因此输出1 echo $b&$c;// 00010 就是2,因此输出2
按位&後回傳值主要是用來判斷$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.'的权力<br>'; } echo $Pri;//输出结果
推薦學習:php影片教學
#以上是如何使用位元運算子中的^和&的詳細內容。更多資訊請關注PHP中文網其他相關文章!