Operatoren
Operatoren werden verwendet, um Operanden miteinander zu verbinden.
Wir kennen alle noch das klassische Beispiel aus unseren frühen Schuljahren.
Ein Operator arbeitet mit einem, zwei oder drei Operanden. Am häufigsten werden wir aber auf den Fall der 2 Operanden treffen, wie wir ihn bereits von der Variablendeklaration kennen. Dabei haben wir bereits den Zuweisungsoperator (=) kennengelernt.
Arithmetische Operatoren
Bei arithmetischen Operatoren handelt es sich um die Grundrechenarten Addition, Subtraktion, Multiplikation und Division, hinzu kommt der sogenannte Modulo-Operator.
$a = 8;
$b = 5;
$add = $a + $b;
echo $add;
$a = 8;
$b = 5;
$sub = $a - $b;
echo $sub;
$a = 8;
$b = 5;
$mul = $a * $b;
echo $mul;
$a = 8;
$b = 5;
$div = $a / $b;
echo $div;
Arithmetische Operator können nur auf Zahlen angewendet werden. Neben den 4 bereits vorgestellten Operatoren, die jedem bekannt sein sollten, gibt es noch den Modulo-Operator, der den ganzzahligen Rest einer Division angibt. Geschrieben wird er mit dem Prozentzeichen (%).
$a = 8;
$b = 5;
$mod = $a % $b;
echo $mod;
Dividiert man 8 durch 5 bleibt ein Rest von 3. Das ist die Ausgabe des Modulo-Operators.
Operator | Beispiel | Beschreibung |
---|---|---|
+ | 8 + 5 // 13 | Addition zweier Zahlen |
- | 8 - 5 // 3 | Subtraktion zweier Zahlen |
* | 8 * 5 // 40 | Multiplikation zweier Zahlen |
/ | 8 / 5 // 1.6 | Division zweier Zahlen |
+ | 8 % 5 // 3 | Ganzzahliger Rest einer Division |
Kurzform
Um den Wert einer Variablen zu verändern, können wir folgende Deklarationen schreiben:
$zahl = 7;
$zahl = $zahl + 2;
echo $zahl;
Es gibt aber auch eine noch kürzere Schreibweise.
$zahl = 7;
$zahl += 2;
echo $zahl;
Diese Kurzschreibweise gibt es für alle arithmetischen Operatoren. Als Ausgangsvariable "$zahl" nehmen wir wieder die Zahl 7.
Operator | Beispiel | Beschreibung |
---|---|---|
+= | $zahl += 3 // 11 | Addition zweier Zahlen |
-= | $zahl -= 3 // 4 | Subtraktion zweier Zahlen |
*= | $zahl *= 3 // 21 | Multiplikation zweier Zahlen |
/= | $zahl /= 3 // 2.33333 | Division zweier Zahlen |
%= | $zahl %= 3 // 1 | Ganzzahliger Rest einer Division |
Inkrement und Dekrement
Inkrement erhöht den Wert der Variable um 1, während beim Dekrement der Wert um 1 verringert wird.
Dazu wird die Schreibweise "++
" für Inkrement und "--
" für Dekrement verwendet.
$zahl = 7;
$zahl ++;
echo $zahl;
$zahl = 7;
$zahl --;
echo $zahl;
Exponential-Operator
Für Exponentialrechnungen wird der Exponential-Operator verwendet.
Geschrieben wird er mit dem doppelten Multiplikationszeichen: "**
".
$zahl = 2;
$exp = 3;
$erg = $zahl ** $exp;
echo $erg;
Vergleichsoperatoren
Um in PHP Werte miteinander zu vergleichen, verwenden wir die Vergleichsoperatoren.
Der Rückgabewert solcher Vergleiche ist ein boolescher Wert, "true
" (Wahr) oder "false
" (Falsch).
PHP liefert den Rückgabewert als Zahl.
Wenn der Vergleich "true
" (Wahr) ist, erhalten wir "1" zurück.
Wenn der Vergleich "false
" (Falsch) ist, erhalten wir als Rückgabewert die "0".
$vergleich = 4 < 6;
echo $vergleich;
Wenn das Ergebnis eines solchen Vergleichs über "echo
" ausgegeben werden sollen, erhalten wir für "true
" die "1", für "false
" wird aber nicht die "0" ausgegeben.
PHP kennt folgende Vergleichsoperatoren:
Operator | Beispiel | Beschreibung |
---|---|---|
> | 4 > 2 // true | Größer als |
< | 4 < 2 // false | Kleiner als |
>= | 4 >= 4 // true | Größer gleich |
<= | 4 <= 4 // true | Kleiner gleich |
== | 4 == 2 // false | Gleichheit |
!= | 4 != 2 // true | Ungleichheit |
<> | 4 <> 2 // true | Ungleichheit |
<=> | 2 <=> 4 // true | Spaceship Operator |
Der Spaceship-Operator hat seinen Namen seiner Form zu verdanken. Er vergleicht auf kleiner, größer und gleich. Dabei liefert er je nach Ergebnis: -1 für kleiner, 0 für gleich und 1 für größer zurück.
Bei Verwendung des Operators für Gleichheit ist zwingend erforderlich, darauf zu achten, dass es sich um das doppelte Gleichheitszeichen handelt. Wenn für den Vergleich an dieser Stelle nur ein Gleichheitszeichen verwendet wird, so interpretiert PHP nicht den Vergleich, sondern eine Wertzuweisung, wie wir sie von der Variablendeklaration kennen. PHP wirft hier keinen Fehler. Allerdings kann es dadurch zu Fehler an anderer Stelle des Programmes kommen.
Genaue Gleichheit und Ungleichheit
Wenn die Vergleichsoperatoren für Gleichheit und Ungleichheit um ein Gleichheitszeichen verlängert werden, so werden daraus die genaue Gleichheit und die genaue Ungleichheit. Nun wird auch der Datentyp mit überprüft.
$wert1 = 5;
$wert2 = "5";
$erg = $wert1 == $wert2;
echo $erg;
$wert1 = 5;
$wert2 = "5";
$erg = $wert1 === $wert2;
echo $erg;
Mit dem Ausrufezeichen vor den Gleichheitszeichen erreichen wir die Negation. Also das Prüfen auf Ungleichheit und genaue Ungleichheit.
$wert1 = 5;
$wert2 = "5";
$erg = $wert1 != $wert2;
echo $erg;
$wert1 = 5;
$wert2 = "5";
$erg = $wert1 === $wert2;
echo $erg;
Logische Operatoren
Durch den Vergleich mit den Vergleichsoperatoren erhalten wir einen Wahrheitswert. Wenn wir jetzt aber mehrere solcher Vergleiche verbinden wollen, verwenden wir die logischen Operatoren.
Am Beispiel wird der logische Operator UND ("&&
") gezeigt.
Das Ergebnis dieses Vergleichs liefert nur dann "true
", wenn beide Operanden "true
" sind.
Ansonsten ist das Ergebnis "false
".
Operator | Beispiel | Beschreibung |
---|---|---|
&& / AND | 6 > 4 && 2 < 3 // true | Logisches UND. Liefert true wenn beide Operanden true sind. |
|| / OR | 6 < 4 || 3 < 5 // true | Logisches ODER. Liefert true wenn mindestens einer der beiden Operatoren true ist. |
XOR | 6 > 4 xor 3 < 5 // false | Logisches ENTWEDER ODER. Liefert nur true wenn einer der beiden Operanden true ist. Liefert false wenn keiner oder beide Operanden true sind. |
! | !false // true | Negation. Kehrt den Wahrheitswert um. Aus true wird false und aus false wird true. |
Konditionaler Operator
Der konditionale Operator wählt zwischen 2 Ausdrücke. Wenn die Bedingung eintritt, wird Ausdruck 1 verwendet, ansonsten wird Ausdruck 2 verwendet.
$a = 5;
$erg = $a < 6 ? "kleiner" : "größer";
echo $erg;
Weiter mit Programmablauf