PHP/Operatoren

Aus Mikiwiki
< PHP
Zur Navigation springen Zur Suche springen

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
?  &nbsp: bedingt links
= Zuweisung rechts
*=   /=   %=   +=   -=   &=   |=   ^=   ~=   <<=   >>= zusammengesetzte Zuweisung rechts
print 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.