Tak jak wspomnieli inni komentatorzy, są to operatory bitowe. Operatory bitowe PHP są udokumentowane tutaj:http://php.net/manual/ pl/language.operators.bitwise.php
Przykłady
&
to bitowe AND
operator.
10 i 10 =10 (wszystkie reprezentacje dziesiętne). Jak? 10 to 1010 binarne.
1010
and 1010
--------
1010
Zauważ, że wynikiem jest 1 tylko wtedy, gdy zarówno górna, jak i dolna liczba w tej samej kolumnie to 1.
Sposób, w jaki PHP pisze, że:
<?php
echo 10 & 10;
?>
Result: 10
Jaki jest z tego praktyczny użytek? Weźmy przykład:są 4 zestawy podwójnych drzwi. Aby osoba mogła przejść, obydwoje drzwi muszą otworzyć się w tym samym czasie. Otwarte drzwi otrzymują numer 1. Zamknięte drzwi otrzymują numer 2.
1010
oznacza, że pierwsze drzwi są otwarte, drugie zamknięte, trzecie otwarte, czwarte zamknięte. Gdy wszystkie drzwi są zamknięte, będą wyglądać tak:
0000 <-- first set of doors
0000 <-- second set of doors
Aby umożliwić komuś przejście przez skrajne lewe drzwi, drzwi powinny wyglądać tak:
0001
0001
Wszystko w porządku, ale jest szybszy sposób na opisanie tego. Operator bitowy &. Robimy &między obydwoma drzwiami i otrzymujemy wynik 1. Więc jeśli dane są przechowywane jako 1, wiemy, że najbardziej lewe drzwi były otwarte.
Aby otworzyć lewe drzwi, kombinacja musiałaby wyglądać następująco:
1000
1000
Wynik operatora bitowego jest liczbą dziesiętną 8. Użyj kalkulatora jak jeden na mininarzędziu pobiegać trochę matematyki.
Z drugiej strony, ponieważ drzwi otwierają się i zamykają przez cały dzień, można było odnotować, kiedy oboje drzwi któregokolwiek z 4 zestawów drzwi były otwarte. To tylko długa odpowiedź na być może proste pytanie.