Operatoren in PHP
Was wäre die Informatik ohne Operatoren? Eigentlich nicht vorstellbar, denn dann hätten Programme genauso viel Interaktivität wie ein Buch. Man kann die Ausgaben lesen und das war's.Grundlegendes
Genau wie in der Mathematik gibt es auch bei den Operatoren eine Rangfolge, die die Reihenfolge der Ausführung der Operatoren mit ihren Parametern bzw. Ausdrücken festlegt.$a=1+2*3; $b=(1+2)*3; echo $a," <-> ",$b; //Ausgabe: '7 <-> 9'
Die Rangfolge der in PHP verfügbaren Operatoren ist folgende:Rang | Operator | Richtung |
---|---|---|
1. | (bool) (int) (float) (string) (array) (object) ! ~ ++ -- @ | rechts |
2. | * / % | links |
3. | - + . | links |
4. | << >> | links |
5. | > >= < <= | ohne |
6. | == != === | ohne |
7. | & | links |
8. | ^ | links |
9. | | | links |
10. | && | links |
11. | || | links |
12. | ? : | links |
13. | alle Zuweisungsoperatoren (= += -= *= /= .= ....) | links |
14. | and | links |
15. | xor | links |
16. | or | links |
Arithmetische Operatoren
Die Arithmetischen Operatoren sind diejenigen, die den Grundrechenarten entsprechen und wir auf jeden Fall noch aus der Schule kennen.Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Addition | + | $a + $b | addiert beide Werte |
Subtraktion | - | $a - $b | subtrahiert rechten Wert vom linken |
Multiplikation | * | $a * $b | multipliziert beide Werte |
Division | / | $a / $b | dividiert linken Wert durch rechten (Ergebnis ist immer eine Gleitkommazahl) |
Modulodivision | % | $a % $b | ergibt Rest der Ganzzahlendivision des linken Werts durch den rechten |
Logische Operatoren
Unter dem Begriff logische Operatoren fasst man all jene zusammen, die mit Booleeschen Werten operieren und diese auch als Ergebnis liefern. Davon werden uns insgesamt 7 zur Verfügung gestellt, wovon allerdings jeweils drei das gleiche Ergebnis liefern und sich nur in der Rangfolge unterscheiden.Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Und | and, && | $a and $b, $a && $b | true, wenn beide Werte true sind |
Oder | or, || | $a or $b, $a || $b | true, wenn mindestens ein Wert true ist |
Exklusiv-Oder | xor, ^ | $a xor $b, $a ^ $b | true, wenn beide Werte unterschiedlich sind |
Nicht | ! | ! $a | true, wenn der Wert false ist (Negation) |
Bitweise Operatoren
Bitweise Operatoren sind diejenigen, die auf die einzelnen Bits der Werte angewandt werden und somit eine Manipulation der einzelnen binären Stellen eines skalaren Datentyps erlaubt. In PHP gibt es 6 davon:Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Und | & | 101 & 011 = 001 | ergibt 1, wenn beide Bits 1 sind |
Oder | | | 101 | 011 = 111 | ergibt 1, wenn eines der beiden Bits 1 ist |
Exklusiv-Oder | ^ | 110 ^ 011 = 101 | ergibt 1, wenn beide Bits unterschiedlich sind |
Nicht | ~ | ~0101 = 1010 | ergibt 1, wenn das Bit 0 ist (Negation) |
Rechtsverschiebung | >> | 0110 >> 1 = 0011 | verschiebt die Bits um die angegebene Anzahl nach rechts |
Linksverschiebung | << | 0110 << 2 = 11000 | verschiebt die Bits um die angegebene Anzahl nach links |
echo ord("ab")," xor ",ord("z")," ergibt ",ord("ab" ^ "z");
Vergleichsoperatoren
Vergleichsoperatoren werden, wie der Name schon sagt, für Vergleiche verwendet. Das Ergebnis einer Vergleichsoperation ist immer ein boolescher Wert. In PHP gibt es insgesamt 9.Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Gleichheit | == | $a==$b | true, wenn beide Werte gleich sind |
Ungleichheit | != | $a!=12 | true, wenn beide Werte ungleich sind |
Gleichheit, typgenau | === | $a===$b | true, wenn beide Werte und Typen gleich sind |
Ungleichheit, typgenau | !== | $a!==$b | true, wenn beide Werte oder Typen ungleich sind |
Größer als | > | $a>12 | true, wenn linker Wert größer als der rechte ist |
Kleiner als | < | $a<$c | true, wenn linker Wert kleiner als rechter ist |
Größer gleich | >= | $a>=$b | true, wenn linker Wert größer oder gleich dem rechten ist |
Kleiner gleich | <= | $a<=1 | true, wenn linker Wert kleiner oder gleich dem rechten ist |
Zuweisungsoperatoren
Während in Pascal nur ein einziger Zuweisungsoperator, und zwar das ":=
" existiert, kann da PHP , wie C auch, mit einigem mehr aufwarten.
Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Zuweisung | = | $a=3 | linke Variable erhält den Wert der rechten Seite |
Additive Zuweisung | += | $a+=5 | linke Variable wird um den Wert der rechten Seite erhöht |
Subtraktive Zuweisung | -= | $a-=$b | linke Variable wird um den Wert der rechten Seite dekrementiert |
Multiplikationszuweisung | *= | $a*=$b | linke Variable wird mit dem rechten Wert multipliziert |
Divisionszuweisung | /= | $a/=12 | linke Variable wird durch den Wert der rechten Seite dividiert |
Modulozuweisung | %= | $a%=$c | mit linker Variable wird eine Moduladivision durch den rechten Wert durchgeführt |
Bitweise Verknüpfungen und Zuweisungen | &=, |=, ^= | $a&=$b | bitweises Und, Oder, Exklusiv-Oder der linken Variablen mit dem rechten Wert |
Bitweise Verschiebungen und Zuweisung | <<=, >>= | $a<<=1 | bitweise Verschiebung nach rechts bzw. links der Bits der linken Variablen um den Wert der rechten Seite |
Logische Verknüpfungen und Zuweisungen | &&=, ||= | $a&&=$b | logische Verknüpfung der linken mit der rechten Seite, wobei das Ergebnis der Variable links zugewiesen wird |
Stringverkettung | .= | $a.=".txt" | der Variablen links wird der Wert rechts angehängt |
$a+=5
, wenn $a=4
war, 9 beträgt. Hierbei ist zu beachten, dass die Auswertung eines Ausdrucks immer von rechts nach links erfolgt!
$a=($b=3)+4; //$a hat jetzt den Wert 7, $b den Wert 3 $a+=$b+=1; //$a ist jetzt 11 und $b gleich 4
Inkrement- / Dekrementoperatoren
Wie in C auch gibt es in PHP diese Operatoren in den Varianten Prä~ und Post~. Wie man sich sicherlich denken kann, werden Präoperatoren zuerst und Postoperatoren danach notiert und auch ausgeführt.$a=1; $a++; //Postinkrement --$a; //Prädekrement
Beim Präoperator wird zuerst der Operator ausgeführt und dann der Wert zurückgegeben, beim Post-operator umgekehrt.$a=1; //a=1 $b=$a++; //b=1, a=2 $c=++$a; //c=3, a=3
Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Präinkrement | ++ | ++$a | Erhöht erst, liefert dann den Wert |
Prädekrement | -- | --$a | Verringert erst, liefert dann den Wert |
Postinkrement | ++ | $a++ | Liefert den Wert, erhöht dann |
Postdekrement | -- | $a-- | Liefert dan Wert, verringert dann |
Zeichenkettenoperatoren
PHP kennt insgesamt drei Zeichenkettenoperatoren, wobei einer bereits im Abschnitt Zuweisungsoperatoren behandelt worden ist, und der andere im Abschnitt Arrayoperatoren noch behandelt wird.Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Verkettung | . | $c=$a.$b | verbindet zwei Zeichenketten miteinander |
Verkettung und Zuweisung | .= | $a.=$b | hängt die Zeichenkette auf der rechten Seite an die linke an |
Zeichenindizierung | [X] | $a[2] | gibt das Zeichen an entsprechender Position der Zeichenkette zurück |
$text="Mein"; echo $text,"n"; $text.=" Text ist vom Typ ".gettype($text); echo $text,"n"; $text[0]="K"; echo $text,"n";
Der Indexoperator[]
behandelt die Zeichenkette wie ein Array und erlaubt somit einen Zugriff auf die Zeichen an den einzelnen Stellen der Kette.
Arrayoperatoren
Dieser Abschnitt fällt relativ kurz aus, da PHP nur zwei Array-Operatoren kennt: die Array-Verkettung und den Index-Operator.Operator | Symbol | Beispiel | Funktionsweise |
---|---|---|---|
Verkettung | + | $c=$a+$b | verbindet zwei Arrays miteinander |
Indizierung | [] | $a['name'] | liefert das Element mit dem angegebenen Schlüssel |
$a=array('name'=>'Fred','alter'=>30,'plz'=>93221); $b=array('name'=>'Bernd','ort'=>'Brügge'); $c=$a+$b; print_r($c);
Der Indexoperator ist ebenfalls schnell erklärt: in den eckigen Klammer wird der Schlüssel des gewünschten Elements angegeben. Indiziert man auf diese Weise einen Schlüssel, der im Array noch nicht existiert, so wird dieses Element neu angelegt.//assoziatives Array $a=array('name'=>'Fred','alter'=>30,'plz'=>93221); //Liste $b=array(1234,5678,91011); echo $b[2],"n"; //gibt letztes Element von $b aus $b[5]=$a; //hängt an Index 5 das Array $a an $b[2]=$a['name']; //Index 2 von $b ist jetzt das Element 'name' von $a print_r($b);
Fehleroperator
Ein weitere Operator ist das@
-Zeichen, der Fehleroperator. Stellt man diesen einem PHP-Befehl voran, so werden alle von diesem Aufruf erzeugten Fehlermeldungen unterdrückt.
phpinfo(TEST); //erzeugt Warnung, die Konstante TEST ist unbekannt @phpinfo(TEST); //nichts passiert
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Fehlerbehandlung
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project