PHP lernen (2): Grundlagen der Syntax
Operatoren
Operatoren
Auf dieser Seite
Mit Bild
Grundlage jeder Programmierung sind bedingte Anweisungen und Schleifen. Diese unterscheiden sich in verschiedenen Programmiersprachen nicht wesentlich. Gebraucht werden sie, wenn Aktionen abhängig von Ereignissen eintreten sollen. Dabei ist eine präzise Betrachtung der einzelnen Ereignisse wichtig. Es müssen Werte berechnet oder miteinander verglichen werden, Aktionen sollen solange ausgeführt werden, wie eine Bedingung wahr ist usw. Um Werte vergleichen zu können, brauchen wir Operatoren, genau genommen Vergleichsoperatoren. Schleifen brauchen häufig Zähler, die hoch- oder heruntergezählt werden sollen. Mit Operatoren beschäftigen wir uns als Erstes. Im Folgeabschnitt kommen wir zu bedingten Anweisungen mit if, else, elseif und switch.
Mit Bild
Wir benutzen die Operatoren, um Ausdrücke als Bedingungen einzusetzen. Die Aktionen in den einzelnen Programmteilen werden in Abhängigkeit vom Wahrheitswert dieser Ausdrücke ausgeführt. Sie legen damit unterschiedliche Aktionszweige für Ihr Programm fest.
Mit Bild
Im übernächsten Abschnitt folgen Schleifen, die Aktionen in Abhängigkeit vom Wahrheitswert ihrer Bedingungen wiederholen. Schleifen brauchen Sie immer dann, wenn Datensätze oder Listen durchlaufen werden sollen. Also wenn Sie ein Array verarbeiten, eine Datei zeilenweise auslesen oder das Ergebnis einer Datenbankabfrage verarbeiten.
Mit Bild
Und dann besprechen wir zum Abschluss der Kontrollstrukturen im Abschnitt Abbruchsteuerung die mächtigen Konstrukte die, exit, AND und OR. Mit ihnen können Programmstrukturen stark gerafft werden. Durch einen geschickten Programmaufbau erreichen Sie eine nennenswerte Performancesteigerung. Anders ausgedrückt: Ist Ihr Programm stark verschachtelt, ist es nicht nur schwer lesbar, sondern auch potentiell langsamer als notwendig.
Mit Bild
Operatoren
Zunächst brauchen wir Operatoren, mit denen Vergleiche angestellt oder mathematische Operationen ausgeführt werden können. Dabei ist wichtig, zwischen Zeichenketten und Zahlen zu unterscheiden. Hier die wichtigsten arithmetischen Operatoren in einer Übersicht:
Mit Bild
Addition:
$a + $bSubtraktion:
$a - $bMultiplikation:
$a * $bDivision:
$a / $bModulus:
$a % $b
Mit Bild
Die ersten vier dürften geläufig sein. Der fünfte Operator vielleicht nicht: Modulus benennt den Rest der Division. Wenn Sie zum Beispiel 9 durch 4 teilen, kommt 2 heraus, Rest 1. Der Modulus ist also 1.
Mit Bild
$c = 9 % 4; // $c ist 1
Mit Bild
Wofür Sie Modulus u.a. benötigen, erfahren Sie später im Skript.
Mit Bild
Dekrement und Inkrement
Zähler werden oft genau um 1 hoch- oder heruntergezählt. Dafür gibt es in den meisten Programmiersprachen wie auch in PHP die De- bzw. Inkrementoperatoren. Um $a um 1 zu erhöhen, kennen wir bisher die Schreibweise:
Mit Bild
$a = $a + 1;
Mit Bild
Es geht noch kürzer:
Mit Bild
$a++;
Mit Bild
Hier wird erst der Wert von $a zurückgegeben und dann der Wert um genau 1 erhöht. Das ist innerhalb einer Zählschleife von Bedeutung. Genauso wäre es möglich, erst hochzuzählen und dann den Wert zurückzugeben. Dann ist die Schreibweise:
Mit Bild
++$a;
Mit Bild
Die Zählschleife wird sich unterschiedlich verhalten. Nachfolgend einige Beispiele, um das zu verdeutlichen:
Mit Bild
# Post-Inkrement ($a++): $a = 5; echo "Sollte 5 sein: " . $a++ . " \n"; echo "Sollte 6 sein: " . $a . " \n"; # Prae-Inkrement (++$a): $a = 5; echo "Sollte 6 sein: " . ++$a . " \n"; echo "Sollte 6 sein: " . $a . " \n"; # Post-Dekrement $a = 5; echo "Sollte 5 sein: " . $a-- . " \n"; echo "Sollte 4 sein: " . $a . " \n"; # Prae-Dekrement $a = 5; echo "Sollte 4 sein: " . --$a . " \n"; echo "Sollte 4 sein: " . $a . " \n";
Mit Bild
Zeichenkettenoperator
Den Verknüpfungsoperator Punkt . für Zeichenketten kennen Sie schon aus "PHP lernen (1)".
Mit Bild
$var = "Welt"; print "Hallo " . $var . "!"; // oder: $var1 = "Hallo"; $var2 = " Welt"; $var = $var1 . $var2;
Mit Bild
Zuweisungsoperatoren
Der einfachste Zuweisungsoperator ist das Gleichheitszeichen =. Hiermit wird z. B. einer Variablen ein Wert zugewiesen:
Mit Bild
$a = 3; $var = "Hallo";
Mit Bild
Darüber hinaus gibt es zwei weitere Zuweisungsoperatoren, die eine verkürzte Schreibweise - ähnlich wie bei De- und Inkrementoperatoren - erlauben. Wenn $a um 4 erhöht werden soll, kann der Operator += verwendet werden:
Mit Bild
$a = 3; $a = $a + 4; // $a ist jetzt 7, alternativ können Sie schreiben: $a += 4; // auch dann hat $a den Wert 7, s. o.
Mit Bild
Das Gleiche funktioniert auch bei Zeichenketten:
Mit Bild
$var = "Hallo"; $var = $var . " Welt"; // oder auch: $var .= " Welt"; // $var hat jetzt den Wert "Hallo Welt"
Mit Bild
Vergleichsoperatoren
Vergleichsoperatoren geben entweder wahr (true) oder falsch (false) zurück. Sie werden vor allem in Ausdrücken bei Bedingungen verwendet. Wenn ein Ausdruck wahr ist, soll eine bestimmte Aktion ausgeführt werden.
$a == |
$b |
ist gleich |
$a != |
$b |
ist nicht gleich |
$a < |
$b |
kleiner als |
$a <= |
$b |
kleiner als oder gleich |
$a > |
$b |
größer als |
$a >= |
$b |
größer als oder gleich |
In einer Bedingung würde dann z. B. folgende Schreibweise verwendet werden:
Mit Bild
if ($a == $b) { print "irgendwas"; }
Mit Bild
Wenn die Variable $a gleich der Variablen $b ist, dann gib irgendwas aus. Wie Ausdrücke in Bedingungen und Schleifen verwendet werden, wird weiter unten noch ausführlich erklärt.
Mit Bild
Logische Operatoren
Die logischen Operatoren vergleichen zwei Ausdrücke miteinander. Die Variablen $a und $b stehen hier für Ausdrücke. Ein Ausdruck kann ein Vergleich sein: $zahl == 3. Ein solcher Ausdruck wird beispielsweise in einer bedingten Anweisung verwendet: if ($zahl == 3). Dies ist dann ein Ausdruck. Wenn Sie zwei Ausdrücke miteinander vergleichen, könnten Sie schreiben: if ($zahl == 3 && $zaehler == 5). Hier würden Sie also zwei Ausdrücke miteinander vergleichen. $a steht für $zahl == 3 und $b für $zaehler == 5.
Genauso ist aber $zahl allein ein Ausdruck. Mit if ($zahl) prüfen Sie, ob $zahl existiert. Sobald $zahl mit einem Wert belegt oder initiiert wurde, existiert die Variable und gibt in einer solchen Abfrage wahr zurück.
$a and $b |
wahr, wenn sowohl $a also auch $b wahr sind |
$a && $b |
wie and, siehe oben |
$a or $b |
wahr, wenn $a oder $b oder beide wahr sind |
$a || $b |
wie or, siehe oben |
$a xor $b |
wahr, wenn entweder $a oder $b wahr ist, aber nicht beide |
!$a |
wahr, wenn $a nicht wahr ist |
If (!$a) fragt ab, ob $a nicht existiert, also noch nicht belegt ist. Das Ausrufezeichen ! negiert den Wahrheitswert eines Ausdrucks. Wenn vor einem Funktionsaufruf ein Ausrufezeichen steht und der Rückgabewert der Funktion wahr, also true, ist, ist der Wert des gesamten Ausdrucks mit Ausrufezeichen falsch, also false.