Operatoren

Die Arbeit mit Variablen und Ausdrücken setzt die Verwendung von Operatoren voraus. Operatoren ermöglichen es Dir, grundlegende arithmetische Funktionen, Vergleiche oder Formationen auf Variablen anzuwenden. Einige dieser Operatoren hast du im Verlauf des Tutorials schon kennen gelernt. Eine komplette Einführung zu diesem Thema findest Du übrigens auf der PHP-Webseite.

Zuweisungsoperatoren

Mit dem Gleichheitszeichen = wird der Wert einer Variable auf eine andere Variable, dem Operanden, kopiert.

Beispiel/OperatorErgebnis
$c = $a Der Wert der Variable $c wird der Variable $a zugewiesen.
$a = 1 Der Wert 1 wird der Variable $a zugewiesen.
$c = &$a Der Variable $c wird die Speicheradresse für den Wert der Variable $a zugewiesen.

Arithmetische Operatoren

In PHP stehen Dir die vier Grundrechenarten zur Verfügung. Ein weiterer Operator ermittelt den Rest aus der Ganzzahldivision.

Beispiel/OperatorBedeutungErgebnis
$c = $a + $b Addition Summe von $a und $b.
$c = $a - $b Subtraktion Differenz von $a und $b.
$c = $a * $b Multiplikation Produkt von $a und $b.
$c = $a / $b Division Quotient von $a und $b.
$c = $a % $b Modulus Rest der Division von $a und $b.

String-Operatoren

Verschiedene Zeichenketten lassen sich miteinander verknüpfen.

Beispiel/OperatorErgebnis
$c = $a . $b Verknüpfung von den Werten $a und $b.
$a .= $b Das gleiche wie .; Verknüpfung von den Werten $a und $b
$c += $b Das gleiche wie .; Verknüpfung von den Werten $c und $b
$c = $c + b Das gleiche wie .; Verknüpfung von den Werten $c und $b

Die Operatoren + und . (Punkt) sind in der Lage, mehr als zwei Variablenwerte miteinander zu verknüpfen.

<?php
$a = "Ich ";
$b = "bin ";
$c = "auf proggen.org!";
$d = $a . $b + $c; // Alle Zeichenketten zusammenführen
echo $d;
?>

Ausgabe:

Ich bin auf proggen.org!

Kombinierte Zuweisungsoperatoren

Zudem ist es möglich, dass zwei Operatoren miteinander kombiniert werden.

Beispiel/OperatorErgebnis
$a += $b Der Wert der Variable $a wird durch Addition um den Wert $b erhöht. Das Ergebnis wird in der Variable $a gespeichert.
$a -= $b Der Wert der Variable $a wird durch Subtraktion um den Wert $b verringert. Das Ergebnis wird in der Variable $a gespeichert.
$a *= $b Der Wert der Variable $a wird durch Multiplikation um den Wert $b erhöht. Das Ergebnis wird in der Variable $a gespeichert.
$a .= $b Dem Wert der Variable $a wird der Variable $b angefügt. Es entsteht eine Zeichenkette, die in der Variable $a gespeichert wird.

Folgendes Beispiel zeigt die Verwendung der Zuweisungsoperatoren:

$a = 6;
$b = 5;
$c = " EURO";
$a %= $b; // Der Divisionsrest von $a und $b;
$a .= $c; // Anfügen des Strings "EURO"
echo "Es bleiben ein Rest von " . $a . ".";

Ausgabe:
Es bleibt ein Rest von 1 EURO.

Zunächst wird der Divisionsrest aus $a und $b errechnet und in $a gespeichert. Nachfolgend wird der in $c gespeicherte String an die Variable $a mit dem Divisionsrest angefügt. Es entsteht ein neuer String, der auf $a gespeichert und mit echo ausgegeben wird.

Vergleichsoperatoren

Vergleichsoperatoren überprüfen zwei Variablen auf eine Abhängigkeit. Trifft die zu untersuchende Abhängigkeit zu, wird TRUE, andernfalls FALSE zurückgegeben.

Beispiel/OperatorErgebnis
$a == $b Die Werte der Variablen $a und $b werden auf ihre Gleichheit überprüft.
$a != $b Die Werte der Variablen $a und $b werden auf ihre Ungleichheit überprüft.
$a <> $b wie !=, TRUE wenn Ungleich
$a > $b Für die Variable $b wird geprüft, ob ihr Wert kleiner als der Wert der Variable $a ist.
$a >= $b Es wird geprüft, ob der Wert der Variable $a größer oder genau gleich dem Wert der $b ist.
$a === $b Die Variablen $a und $b werden darauf überprüft, ob ihre Werte UND ihre Datentypen übereinstimmen.
$a !== $b Die Variablen $a und $b werden darauf überprüft, ob ihre Werte UND ihre Datentypen verschieden sind.

Vergleichsoperatoren bilden die Grundlage für Bedingungen, wie das folgende Beispiel zeigt.

$a = "PHP";
$b = "php";
if($a != $b) 
{
  echo "Die Werte der Variablen \$a und \$b sind unterschiedlich.";
}

Ausgabe:

Die Werte der Variablen $a und $b sind unterschiedlich.

Wie sich der unterschiedliche Einsatz von == und === auswirkt, zeigen Tabellen auf der PHP-Seite

Operatoren für In- und Dekrementierung

Durch Inkrementierung wird der Wert einer Variable auf bequeme Art um den Wert 1 erhöht. Dekrementierung verringert dagegen den Wert einer Variable um den Wert 1. Dabei kann der Operator der Variablen entweder vorangestellt oder ihr nachgestellt werden.

Beispiel/OperatorErgebnis
++$a Der Wert der Variable $a wird um den Wert 1 erhöht (inkrementiert). Der neue Wert der Variable $a wird zurückgegeben und gespeichert.
$a++ Der alte Wert der Variable $a wird zurückgegeben und dann um den Wert 1 erhöht und gespeichert.
--$a Der Wert der Variable $a wird um den Wert 1 verringert (Dekrementiert). Der neue Wert der Variable $a wird zurückgegeben und gespeichert.
$a-- Der alte Wert der Variable $a wird zurückgegeben und dann um den Wert 1 verringert (Dekrementiert) und gespeichert.

Von besonderer Bedeutung sind diese Operatoren besonders für Schleifen. Folgendes Beispiel demonstriert die Arbeitsweise eines Inkrementierungsoperators innerhalb einer Schleife:

<?php
  $i = 0;
  while($i < 10)
  {
    $a .= $i . ", ";
    $i++;
  }
  echo "PHP kann Z&auml;hlen: $a"; // &auml; ist die HTML-Umschreibung für ä
?>

Ausgabe:

PHP kann Zählen: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 

Du erkennst, dass die Variable $i innerhalb der while-Schleife um den Wert 1 erhöht wird. Das passiert so lange, bis die Austrittsbedingung aus der Schleife folgt (Siehe while Kommando, innerhalb der Klammern). Das ist der Fall, wenn $i größer als der Wert 9 wird. Da $i am Anfang der Wert 0 zugewiesen wird, wird die Schleife zehnmal durchlaufen.

Logische Operatoren

Logische Operatoren sind für das Formulieren von Bedingungen entscheidend. Mit ihnen verknüpfst Du beliebige Ausdrücke logisch zu einer Bedingung. Trifft diese Bedingung zu, ist sie wahr (TRUE), ansonsten falsch (FALSE).

Beispiel/OperatorErgebnis
$a and $b Ist wahr, wenn $a UND $b wahr (TRUE) sind.
$a or $b Ist wahr, wenn entweder $a ODER $b wahr ist oder beide wahr sind.
$a xor $b Ist wahr, wenn entweder $a ODER $b wahr ist, aber nicht beide wahr sind.
$a && $bIst wahr, wenn $a UND $b wahr sind. (wie and)
$a || $bIst wahr, wenn entweder $a ODER $b wahr ist oder beide wahr sind. (wie or)
! $a Ist wahr, wenn $a NICHT wahr ist (Also False).

Bit-Operatoren

Diese Operatoren funktionieren nur mit Variablen vom Typ integer. Die Veränderung eines ganzzahligen Wertes erfolgt im Bit-Bereich.

Beispiel / Operator Bedeutung
$a & $b Binäre UND-Verknüpfung von $a und $b .
$a | $b Binäre ODER-Verknüpfung von $a und $b .
$a ^ $b XOR-Verknüpfung.
~$a »NICHT«-binärer Wert (NOT).
$a >> $b Die Bits von $a werden um den Wert der Variable $b nach Rechts verschoben.
$a << $b Die Bits von $a werden um den Wert der Variable $b nach Links verschoben.

Cast Operatoren

PHP unterstützt so genannte Cast-Operatoren. Durch das Voranstellen der Operatoren vor eine Variable wird der Datentyp geändert.

Beispiel / Operator Ergebnis
(int)$a$a wird zum Datentyp integer umgewandelt.
(integer)$a
(real)$a $a wird zum Datentyp float umgewandelt.
(double)$a
(float)$a
(string)$a $a wird zum Datentyp String umgewandelt.
(array)$a $a wird zum Datentyp array umgewandelt.
(object)$a $a wird zu einem Objekt umgewandelt.
(bool)$a $a wird zum Datentyp boolean umgewandelt.
(boolean)$a

Operatoren und ihre Reihenfolge

Die Rangfolge ist bei der Zusammensetzung von Operatoren und Operanden 1) entscheidend. Jeder Operator muss in der richtigen Beziehung zu seinem Operanden stehen, festgelegt ist, in welcher Richtung die Auswertung durchgeführt wird. Es gibt auch Operatoren, die nicht assoziativ sind, sich also auf beide Operanden völlig gleichwertig beziehen.

BeziehungOperator
keinenew,< ⇐ ⇒ >, == != ===
Links* / %, + - . , « », &, ^, |, &&, ||, ?:, Xor, Or, ,(Komma), ]
Rechts [, ! - ++ – (int) (double) (string) (array) (object) @ (Also alle Cast Operatoren), = += -= *= /= .= %= &= != ^= «= »= ~=

Das folgende Beispiel erläutert den Sachverhalt:

<?php
 $a = 2;
?>

Der Ausdruck $a = 1 wird von rechts nach links ausgewertet.

<?php
 if (!$b) { echo "PHP ";}
?>

Der Operator ! bezieht sich auf den rechts von ihm stehenden Operanden $b.

<?php
  if($a == 1) { echo "ist cool!"; }
?>

Der Operator == bezieht sich auf gleichwertig sowohl auf den Operanden $a als auch auf den Operanden 1.

Die Rangfolge ist besonders beim Formulieren komplizierter Bedingungen(Bedingungen bedeutsam.

Auf der nächsten Seite lernen wir, wie der Programmablauf durch Bedingungen gesteuert wird.

1) Der Operand wird vom Operator verarbeitet