• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

pipe in php Funktionsaufruf

aichingm

Mitglied
Hallo ich hab mal wieder eine sehr theoretische Frage:

ich habe im php-manual einen Funktionsaufruf gefunden den ich mir nicht wirklich erklären kann und google hat mich auch nicht weiter gebracht. Kann mir jemand erklären was die pipe in folgendem code macht oder wie ihre Funktion zu interpretieren ist?

PHP:
foo($var1 | $var2);

der link zum gefunden Aufruf im manual: PHP: ZipArchive::eek:pen - Manual

vielen dank, Mario
 
Werbung:
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
 
Zuletzt bearbeitet:
Vielen vielen dank für deine mühe! auch wenn der Satz "| ist bei Bitwise-Operationen ein OR" gereicht hätte aber du konntest ja nicht wissen wie versiert oder nicht versiert ich bin :)

Auf jeden Fall finde ich es echt beeindruckend wie viel du dir mit der Antwort angetan hast!

Hoffentlich hilft sie mal jemandem der keine Ahnung von binärem Rechnen oder Logischen-Verleichs-Operationen hat, ein großes Lob für die Anschaulichkeit deiner Erklärung wäre sicher als kompletter Neuling auch einfach verständlich!!!


Noch Mals danke für deine mühe, Mario
 
Werbung:
Zurück
Oben