Побитовите оператори ви позволяват да променяте определени битове в целите числа. Ако и левият и десният параметър са низове, побитовият оператор ще оперира с ASCII стойностите на съответния символ.
<?php
echo 12 ^ 9; // Извежда '5'
echo "12" ^ "9"; // Извежда символа за изтриване (Backspace) (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // Извежда ASCII стойностите #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
echo 2 ^ "3"; // Извежда 1
// 2 ^ ((int)"3") == 1
echo "2" ^ 3; // Извежда 1
// ((int)"2") ^ 3 == 1
?>
Пример | Наименование | Резултат |
---|---|---|
$a & $b | И (And) | Вдигат се битовете, които са установени и в $a и в $b. |
$a | $b | Или (Or) | Вдигат се битовете, които са установени или в $a или в $b. |
$a ^ $b | Изключващо или (Xor) | Вдигат се битовете, които са установени само в $a или само в $b, но не и в двете едновременно. |
~ $a | Не (Not) | Вдигат се битовете, които не са установени в $a, и обратното - тези, които са установени, се свалят. |
$a << $b | Преместване наляво (Shift left) | Преместване битовете на $a с $b позиции наляво (всяка позиция означава "умножение по две") |
$a >> $b | Преместване надясно (Shift right) | Преместване битовете на $a с $b позиции наляво (всяка позиция означава "деление на две") |
Не премествайте надясно повече от 32 бита на 32-битови системи. Също, не премествайте наляво в случай, че резултатът ще бъде число по-дълго от 32 бита.