Operadores bit-a-bit permitem que você acione ou desligue bits específicos dentro de um inteiro. Se ambos os parâmetros da esquerda e da direita forem strings, esses operadores irão trabalhar nos caracteres dessa string.
<?php
echo 12 ^ 9; // Imprime '5'
echo "12" ^ "9"; // Imprime o caracter de volta (backspace - ASCII 8)
// ('1' (ASCII 49)) ^ ('9' (ASCII 57)) = 8
echo "hallo" ^ "hello"; // Imprime os valores ASCII 0 4 0 0 0
// 'a' ^ 'e' = 4
?> |
Tabela 11-3. Operadores Bit-a-bit
| Exemplo | Nome | Resultado |
|---|---|---|
| $a & $b | E | Os bits que estão ativos tanto em $a quanto em $b são ativados. |
| $a | $b | OU | Os bits que estão ativos em $a ou em $b são ativados. |
| $a ^ $b | XOR | Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados. |
| ~ $a | NÃO | Os bits que estão ativos em $a não são ativados, e vice-versa. |
| $a << $b | Deslocamento à esquerda | Desloca os bits de $a $b passos para a esquerda (cada passo significa "multiplica por dois") |
| $a >> $b | Deslocamento à direita | Desloca os bits de $a $b passos para a direita (cada passo significa "divide por dois") |