Лучший пример использования и суть что это побитовое или включающее))) т.е. выставляет биты что бы у нас были единички и там и там
1 2 3 4 5 6 7 8 9 10 11 |
$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)' . ' %3$s (%4$2d = %4$04b)' . "\n"; $values = array(0, 1, 2, 4, 8); $test = 1 + 4; echo "\n Побитовое (включающее) ИЛИ (OR) \n"; foreach ($values as $value) { $result = $value | $test; printf($format, $result, $value, '|', $test); } |
Побитовое (включающее) ИЛИ (OR)
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)
в битриксе часто встречается такая вот конструкция
1 |
$b404 |= !isset($arVariables["SECTION_CODE"]); |
и еще одна фраза мудерная
|= равен |, поскольку += равен +; то есть $a |= $b; совпадает с $a = $a | $b;. Оператор | побитовый