PHP: Bit-Operatoren - Manual
Das sind Bit-Operatoren.
Wenn $var1 die Zahl 1 enthält und $var2 die Zahl 2, dann repräsentiert man die Zahlen so:
1 → 00000001
2 → 00000010
| ist bei Bitwise-Operationen ein OR. Dabei musst du jede einzelne „Kolonne“ anschauen:
1 | 2
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 0
= 0
00000001
00000010
→ 0 OR 1
= 1
00000001
00000010
→ 1 OR 0
= 1
Das gibt dann 00000011 → 3
Der Nutze darin ist in vielen Fällen einfach mehrere Optionen zu geben.
Jedes Bit (eine 1 oder 0) stellt eine Möglichkeit dar, die entweder wahr oder falsch ist.
Zum Beispiel Benutzer-Rechte:
Das Recht, einen Kommentar zu schreiben ist das Recht, das ganz rechts ist. Wenn der Benutzer das darf, hat er schonmal den letzten Bit auf 1.
Wenn das zweite Recht ist, Kommentare zu löschen und er es darf, ist der vorletzte Bit auf 1.
Wenn das dritte Recht ist, Benutzer zu sperren, dann ist der drittletzte Bit auf 3.
Das sind bei drei möglichen Rechte die Kombinationen:
00000111 → Darf schreiben, löschen, sperren
00000011 → Darf schreiben, löschen, NICHT sperren
00000001 → Darf schreiben, NICHT löschen, NICHT sperren
00000000 → Darf NICHT schreiben, NICHT löschen, NICHT sperren
00000101 → Darf schreiben, NICHT löschen, sperren
00000110 → Darf NICHT schreiben, löschen, sperren
00000010 → Darf NICHT schreiben, löschen, NICHT sperren
00000100 → Darf NICHT schreiben, NICHT löschen, sperren
Als Integer sieht das so aus:
00000111 → 1 | 2 | 4 = 7
00000011 → 1 | 2 = 3
00000001 → 1 = 1
00000000 → 0 = 0
00000101 → 1 | 4 = 5
00000110 → 2 | 4 = 6
00000010 → 2 = 2
00000100 → 4 = 4