PHP/Operatoren
Arithmetische Operatoren
PHP kennt die elementaren arithmetischen Operatoren.
$x + $y; ## Addition $x - $y; ## Subtraktion $x * $y; ## Multiplikation $x / $y; ## Division $x % $y; ## Modulus (Rest der Ganzzahldivision)
Bei der Division wird immer dann eine Fliesskommadivision durchgeführt, wenn einer der beiden Werte vom Datentyp "double" ist. Für eine Ganzzahldivision müssen beide Operanden vom Datentyp "integer" sein.
Um Werte um eins zu erhöhen oder zu vermindern, werden die Inkrement- und Dekrementoperatoren verwendet.
$zahl++ $zahl--
Im Zusammenhang mit Zusammenhang mit Zuweisungen ist es wichtig festzulegen, ob die Erhöhung bzw. Verminderung vor oder nach der Zuweisung stattfinden soll. Entsprechend wird der Operator vor oder hinter die Zahl geschrieben.
$x = $y++ ## x wird y, dann wird y erhöht $x = ++$y ## y wird erhöht und dann x zugewiesen $x = $y-- ## x wird y, dann wird y vermindert $x = --$y ## y wird vermindert und dann x zugewiesen
Zuweisungsoperatoren
Der Zuweisungsoperator findet beispielsweise für die Übertragung von Werten in eine Variable Verwendung. Die grundlegenden arithmetischen Operatoren können mit dem Zuweisungsoperator verbunden werden. Mit Klammern können auch komplexere Konstruktionen geschaffen werden.
$zahl = 45; ## Zuweisung des Werts "45" zur Variablen "$zahl" $zahl += $andere_zahl; ## Addiert eine andere Zahl dazu $zahl = ($faktor = 2) * 4; ## "$faktor" ist dann 2, "$zahl" entsprechend 8 $z1 = $z2 = $z3 = 0; ## "$z1", "$z2" und "$z3" enthalten den Wert 0
Die arithmetischen Operatoren können damit kombiniert werden.
$zahl1 += $zahl2; $zahl1 -= $zahl2; $zahl1 *= $zahl2; $zahl1 /= $zahl2; $zahl1 %= $zahl2;
Auch der Zeichenkettenoperator "." kann mit der Zuweisung kombiniert werden.
$zeichen .= "<br />";
|
Bitoperatoren
Logische Operatoren
Assoziativität der Operatoren
Treten mehrere Operatoren nebeneinander auf, so werden sie in einer bestimmten Rangfolge (Assoziativität) verarbeitet. Die folgende Tabelle zeigt diese für alle Operatoren. Zum Ändern der Reihenfolge werden Klammern benutzt.
Operator | Beschreibung | Assoziativität |
---|---|---|
Höchster Vorrang | ||
new | Objekt zuweisen | keine Richtung |
[ ] | Arrayelement | rechts |
+ | unäres Plus | rechts |
- | unäres Minus | rechts |
~ | Bit-Komplement | rechts |
! | logisches NOT | rechts |
++ | Post-Inkrement | rechts |
-- | Post-Dekrement | rechts |
( ) | Funktionsaufruf | rechts |
++ | Prä-Inkrement | rechts |
-- | Prä-Dekrement | rechts |
* | * | links |
/ | / | links |
% | Modulo | links |
. | Strukturelement | links |
+ | + | links |
- | - | links |
<< | bitweise Verschiebung nach links | links |
>> | bitweise Verschiebung nach rechts | links |
< | kleiner als | keine Richtung |
<= | kleiner als oder gleich | keine Richtung |
> | grösser als | keine Richtung |
>= | grösser als oder gleich | keine Richtung |
== | gleich | keine Richtung |
!= | ungleich | keine Richtung |
=== | strikt gleich | keine Richtung |
& | bitweises AND | links |
^ | bitweises XOR | links |
| | bitweises OR | links |
&& | logisches AND | links |
|| | logisches OR | links |
?  : | bedingt | links |
= | Zuweisung | rechts |
*= /= %= += -= &= |= ^= ~= <<= >>= | zusammengesetzte Zuweisung | rechts |
rechts | ||
and | logisches AND | links |
xor | logisches XOR | links |
or | logisches OR | links |
, | mehrfache Auswertung | links |
Niedrigster Vorrang |
Der Fehleroperator
Der Fehleroperator "@" ist zur Unterdrückung von Fehlermeldungen gedacht. Er kann allen Ausdrücken und Funktionen vorangestellt werden, die etwas "zurückgeben". Misslingt der Abruf des Ergebnisses aus irgendwelchen Gründen, so unterdrückt der Operator die standardmässige Fehlermeldung und lässt das Skript weiterlaufen.
@file("dateiname.php");
|
In diesem Falle muss man sich aber um eine eigene Fehlerbehandlung kümmern. Überdies kann der Operator keine Fehler unterdrücken (z. B. Parser-Fehler), die schon vor dem Verarbeiten auftreten.