Logische Operatoren dienen zum Vergleichen boolescher Werte (true und false) und geben einen dritten booleschen Wert zurück. Bei der Programmierung werden sie normalerweise zusammen mit Vergleichsoperatoren verwendet, um auf diese Weise komplexe Vergleiche auszudrücken, die sich auf mehr als eine Variable beziehen.
Logisches Und
Der Operator (&&) ergibt dann und nur dann true, wenn gleichzeitig der erste und der zweite Operand true sind. Ergibt schon der erste Operand ein false, ist das Ergebnis ebenfalls false. Das ist der Grund dafür, weshalb sich der Operator (&&) gar nicht erst damit aufhält, den zweiten Operanden noch zu überprüfen.
Beispiel
$wertEins = true;
$wertZwei = true;
// Beide Ausdrücke sind gleichwertig
// Ergebnis: true
echo $resultat = $wertEins && $wertZwei;
// Ergebnis: true
if ($wertEins && $wertZwei) $resultat = true;
Beispiel
$wertEins = (10 * 2);
$wertZwei = (10 + 10);
// Beide Ausdrücke sind gleichwertig
// Ergebnis: true
if ($wertEins && $wertZwei) $resultat = true;
Um den logischen Operator (&&) noch besser zu verstehen, hier eine Wahrheitstabelle.
Operand 1 | Operand 2 | Operand 1 && Operand 2 |
true | false | false |
false | true | false |
true | true | true |
false | false | false |
Logisches Oder
Der Operator (||) ergibt nur dann true, wenn der erste oder der zweite Operand wahr ist oder auch beide gleichzeitig. Genau wie (&&) wertet auch dieser Operator den zweiten Operanden nicht aus, wenn der erste Operand das Ergebnis schon endgültig festlegt. Ergibt der erste Operand true, dann ist das Ergebnis ebenfalls true, der zweite Operand kann das Ergebnis nicht mehr ändern und wird daher nicht ausgewertet.
Beispiel
$wertEins = (10 * 2);
$wertZwei = (10 + 10);
// Logische Operator (||) – OR
// Ergebnis: true
if ($wertEins || $wertZwei) $resultat = true;
Um den logischen Operator (||) noch besser zu verstehen, hier eine Wahrheitstabelle.
Operand 1 | Operand 2 | Operand 1 || Operand 2 |
true | false | True |
false | true | True |
true | true | True |
false | false | false |
Logisches Entweder-Oder
Der Operator (xor) ergibt nur dann true, wenn genau einer der beiden Operanden wahr ist. Der Operator wertet immer beide Operanden aus. Sind beide Operanden true, dann ist das Ergebnis false.
Beispiel
$wertEins = (10 * 2);
$wertZwei = (10 + 10);
// Logische Operator (XOR)
// Ergebnis: wahr
if ($wertEins == 20 xor $wertZwei == 10) $resultat = "wahr";
else $resultat = "falsch";
// Ergebnis: falsch
if ($wertEins == 20 xor $wertZwei == 20) $resultat = "wahr";
else $resultat = "falsch";
{PSP}Um den logischen Operator (xor) noch besser zu verstehen, hier eine Wahrheitstabelle.
Operand 1 | Operand 2 | Operand 1 xor Operand 2 |
true | false | True |
false | true | True |
true | true | false |
false | false | false |
Logisches Nicht
Der Operator (!) ist ein unärer Operator, der vor seinem einzigen Operanden steht. Sein Zweck besteht darin, den booleschen Wert seines Operanden umzukehren.
Beispiel
$wertEins = true;
// Logische Operator (!) – NICHT
// Ergebnis: false
$resultat = !$wertEins;
Um den logischen Operator (!) noch besser zu verstehen, hier eine Wahrheitstabelle.
Operand 1 | ! Operand 1 |
true | false |
false | true |
Zusammenfassend eine Übersicht über die logischen Operatoren in PHP.
Operator | Bezeichnung | Bedeutung |
&& / and | Logisches UND (AND) Verknüpfung | $a && $b ergibt true, wenn sowohl $a, als auch $b wahr sind. Ist $a bereits falsch, so wird false zurückgegeben und $b nicht mehr ausgewertet. |
|| / or | Logisches ODER (OR) Disjunktion | $a || $b ergibt true, wenn mindestens einer der beiden Ausdrücke $a oder $b wahr ist. Ist bereits $a wahr, so wird true zurückgegeben und $b nicht mehr ausgewertet. |
xor | Exklusiv-ODER (XOR) | $a xor $b ergibt true, wenn genau einer der beiden Ausdrücke $a oder $b wahr ist. |
! | Logisches NICHT Negation | !$a ergibt false, wenn $a wahr ist und true, wenn $a false ist. |