PHP Portal » PHP Handbuch » Logische Operatoren

Werbung

Logische Operatoren


Logische Operatoren
Beispiel Name Ergebnis
$a and $b Und TRUE wenn sowohl $a als auch $b TRUE ist.
$a or $b Oder TRUE wenn $a oder $b TRUE ist.
$a xor $b Entweder Oder TRUE wenn entweder $a oder $b TRUE ist, aber nicht beide.
! $a Nicht TRUE wenn $a nicht TRUE ist.
$a && $b Und TRUE wenn sowohl $a als auch $b TRUE ist.
$a || $b Oder TRUE wenn $a oder $b TRUE ist.

Der Grund dafür, dass es je zwei unterschiedliche Operatoren für die "Und"- und die "Oder"-Verknüpfung gibt ist der, dass die beiden Operatoren jeweils Rangfolgen haben. (siehe auch Operator-Rangfolge.)

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// -------------------- // foo() wird nie aufgerufen werden, da die Operatoren umgangen werden $a = (false && foo()); $b = (true || foo()); $c = (false and foo()); $d = (true or foo()); // -------------------- // "||" hat eine größere Priorität als "or" // Das Ergebnis des Ausdrucks (false || true) wird $e zugewiesen // Funktioniert wie: ($e = (false || true)) $e = false || true; // Die Konstante "false" wird $f zugewiesen und danach wird true ignoriert // Funktioniert wie: (($e = false) or true) $f = false or true; var_dump($e, $f); // -------------------- // "&&" hat eine größere Priorität als "and" // Das Ergebnis des Ausdrucks (true && false) wird $g zugewiesen // Funktioniert wie: ($g = (true && false)) $g = true && false; // Die Konstante "true" wird $h zugewiesen und danach wird false ignoriert // Funktioniert wie: (($h = true) and false) $h = true and false; var_dump($g, $h);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)
bool(false)
bool(true)