PHP provides a set of bitwise operators that allow you to work directly with the binary representation of numbers. These operators perform bit-level operations, which can be useful for tasks such as flag handling and low-level programming.
1. Common Bitwise Operators
&
: Bitwise AND|
: Bitwise OR^
: Bitwise XOR~
: Bitwise NOT (Complement)<<
: Left Shift>>
: Right Shift
2. How Bitwise Operators Work
Bitwise operators work on the binary representation of integers. For example, consider the numbers 5 and 3:
- 5 in binary is 0101
- 3 in binary is 0011
π Example 1: Bitwise AND (&
)
Performs AND operation between two numbers.
<?php $a = 6; // 110 in binary $b = 3; // 011 in binary echo $a & $b; // Output: 2 (010 in binary) ?>
π Example 2: Bitwise OR (|
)
Returns 1 if at least one bit is 1.
<?php $a = 6; // 110 in binary $b = 3; // 011 in binary echo $a | $b; // Output: 7 (111 in binary) ?>
π Example 3: Bitwise XOR (^
)
Returns 1 if only one of the bits is 1.
<?php $a = 6; // 110 in binary $b = 3; // 011 in binary echo $a ^ $b; // Output: 5 (101 in binary) ?>
π Example 4: Bitwise NOT (~
)
Flips all bits of a number (may give negative results due to 2βs complement representation).
<?php $a = 6; // 110 in binary echo ~ $a; // Output: -7 (due to 2's complement) ?>
π Example 5: Left Shift (<<
)
Moves bits to the left (multiplies by powers of 2).
<?php $a = 3; // 011 in binary echo $a << 2; // Output: 12 (1100 in binary) ?>
π Example 6: Right Shift (>>
)
Moves bits to the right (divides by powers of 2).
<?php $a = 8; // 1000 in binary echo $a >> 2; // Output: 2 (10 in binary) ?>
π― Recap β Quick Takeaways
&
(AND) β Both bits must be 1|
(OR) β At least one bit must be 1^
(XOR) β Only one bit can be 1~
(NOT) β Flips all bits<<
(Left Shift) β Moves bits left, fills with 0s>>
(Right Shift) β Moves bits right, discards bits
π Practice Time!
Change values in the examples and see what happens. The best way to learn is to experiment!