位運算符

位運算符容許對整型數中特殊的位進行置位。若果左右參數都是字串,則位運算符將動作字元的 ASCII 值。

<?php
echo 12 9// 輸出為 '5'

echo "12" "9"// 輸出退格字元(ascii 8)
                    // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" "hello"// 輸出 ascii 值 #0 #4 #0 #0 #0
                            // 'a' ^ 'e' = #4
?>

表格 15-3. 位運算符

例子名稱結果
$a & $bAnd(按位與)將把 $a 和 $b 中都為 1 的位設為 1。
$a | $bOr(按位或)將把 $a 或是 $b 中為 1 的位設為 1。
$a ^ $bXor(按位異或)將把 $a 和 $b 中不同的位設為 1。
~ $aNot(按位非)將 $a 中為 0 的位設為 1,反之亦然。
$a << $bShift left(左移)將 $a 中的位向左搬移 $b 次(每一次搬移都表示「乘以 2」)。
$a >> $bShift right(右移)將 $a 中的位向右搬移 $b 次(每一次搬移都表示「除以 2」)。

警示

在 32 位系統上不要右移超過 32 位。不要在結果可能超過 32 位的情況下左移。