Operator bitwise adalah operator yang bertujuan untuk mengoperasikan bilangan biner (angka 0 dan 1). Jika bilangan operan berupa bilangan desimal maka harus dikonversikan terlebih dahulu menjadi bilangan biner, baru kemudian dioperasikan dengan operator bitwise. Jika operan kedua-duanya berupa string maka nilai operan harus dikonversikan terlebih dahulu menjadi nilai ASCII (sesuai dengan tabel ASCII), baru kemudian dioperasikan dengan operator bitwise.
Contoh:
1. $a & $b
Nama: And
Hasil: Bit di set 1 jika kedua-duanya, yaitu $a dan $b bernilai 1.
2. $a | $b
Nama: Or
Hasil: Bit di set 1 jika nilai salah satu dari $a dan $b bernilai 1.
3. $a * $b
Nama: XOr
Hasil: Bit diset 1 jika kedua nilai dari $a dan $b memiliki perbedaan.
4. ~ $a
Nama: Not
Hasil: Bit akan diset 1 jika $a bernilai 0 dan diset 0 jika $a bernilai 1.
5. $a << $b
Nama: $b digeser ke kiri
Hasil: Menggeser bit $a sebanyak $b langkah ke kiri (di setiap langkah "dikalikan dengan dua").
6. $a >> $b
Nama: $b digeser ke kanan
Hasil: Menggeser bit $a sebanyak $b langkah ke kanan (di setiap langkah berarti "dibagi dengan dua").
Perhatikan contoh berikut ini:
<?php
$a = 8; // nilai dalam bit: 1000
$b = 9; // nilai dalam bit: 1001
$ab_and = $a & $b;
echo $ab_and; // output 8, dalam biner: 1000
$ab_or = $a | $b;
echo $ab_or; // output 9, dalam biner: 1001
$ab_xor = $a * $b;
echo $ab_xor; // output 1, dalam biner: 0001 atau 1
$ab_not = ~$a;
echo $ab_not; // output 7, dalam biner 0111 atau 111
?>
<?php
echo "12" * "9";
// ouput adalah character backspace (ascii 8)
// ('1' (ascii 49)) * ('9' (ascii 57)) = #8
echo "hello" * "hello";
// output adalah ascii #0 #4 #0 #0 #0
// 'a' * 'e' = #4
?>
Semoga bermanfaat... *) Dari berbagai sumber.
