비트 연산자는 정수에 있는 특정 비트를 끄거나 켤 수 있도록 합니다. 왼쪽과 오른쪽 인수가 모두 문자열이면, 비트 연산자는 문자의 아스키 값으로 연산합니다.
<?php
echo 12 ^ 9; // Outputs '5'
echo "12" ^ "9"; // Outputs the Backspace character (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // Outputs the ascii values #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
echo 2 ^ "3"; // Outputs 1
// 2 ^ ((int)"3") == 1
echo "2" ^ 3; // Outputs 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 단계만큼 왼쪽으로 시프트 (각 단계는 "2로 곱하기"를 의미합니다) |
$a >> $b | Shift right | $a의 비트를 $b 단계만큼 오른쪽으로 시프트 (각 단계는 "2로 나누기"를 의미합니다) |
32비트 시스템에서 32비트 초과하는 오른쪽 시프트를 하지 마십시오. 결과가 32비트를 수 넘어가는 왼쪽 시프트를 하지 마십시오.