07 Kontrollstrukturen

if

Das if-Konstrukt ist eines der wichtigsten Features vieler Programmiersprachen, so auch in PHP. Das Konstrukt ermöglicht die bedingte Ausführung von Codefragmenten.

if(ausdruck) {
    anweisung;
}

Nur wenn ausdruck den Wert true ergibt, wird anweisung ausgeführt.

if($a > $b) {
    echo '$a ist grösser als $b';
}

Operatoren

Vergleichs-Operatoren

Um zwei Werte in PHP zu vergleichen, gibt es die Vergleichsoperatoren == und ===. Ein Vergleichs-Ausdruck gibt immer einen boolschen Wert von true oder false zurück.

Beispiel

Name

Ergebnis

$a == $b

Gleich

Gibt true zurück, wenn $a gleich $b ist.

$a === $b

Identisch

Gibt true zurück, wenn $a gleich $b ist und beide vom gleichen Typ sind.

$a != $b

Ungleich

Gibt true zurück, wenn $a ungleich $b ist.

$a !== $b

Nicht identisch

Gibt true zurück, wenn $a ungleich $b ist oder nicht vom gleichen Typ sind.

$a < $b

Kleiner als

Gibt true zurück, wenn $a kleiner als $b ist.

$a > $b

Grösser als

Gibt true zurück, wenn $a grösser als $b ist.

$a <= $b

Kleiner Gleich

Gibt true zurück, wenn $a kleiner oder gleich $b ist.

$a >= $b

Grösser Gleich

Gibt true zurück, wenn $a grösser oder gleich $b ist.

Typenschwache und typenstarke Vergleiche

In PHP können typenschwache oder typenstarke Vergleiche durchgeführt werden. Bei typenschwachen Vergleichen (==, !=) wird der Wert der Variablen unabhängig von ihren Typen verglichen. Bei typenstarken Vergleichen (===, !==) müssen Wert und Typ beider Variablen identisch sein.

Der typenstarke Ungleich-Operator (!==) ist wahr, wenn der Wert oder der Typ unterschiedlich ist. So kann z.B. unterschieden werden, ob ein Teil-String in einem Text am Anfang (die Funktion strpos() liefert 0) oder gar nicht (strpos() liefert false) vorkommt.

Tabelle zu Typenvergleichen in PHP

Logische Operatoren

Um mehrere Vergleiche zu verbinden oder einen Vergleich umzukehren, können logische Operatoren verwendet werden.

  • and

  • or

  • xor

  • &&

  • ||

  • !

Tabelle zu Logische Operatoren in PHP

else

Oft will man eine Anweisung ausführen, wenn eine bestimmte Bedingung erfüllt ist, und eine andere Anweisung, wenn dies nicht der Fall ist. Dies ist der Einsatzzweck von else.

Ternärer Operator

Um eine einfache if/else-Bedingung zu erstellen, kann auch der Ternäre Operator verwendet werden. Dies ist besonders bei der Zuweisung von bedingten Werten an eine Variable eine leserliche Alternative.

Die Klammern ( ) sind optional.

elseif

elseif, wie der Name schon sagt, ist eine Kombination aus if und else. Wie else erweitert es eine if-Kontrollstruktur, um alternative Befehle auszuführen, wenn die ursprüngliche if-Bedingung nicht zutrifft.

while

Die Bedeutung einer while-Schleife ist simpel. Die Schleife weist PHP an, die untergeordnete Anweisung wiederholt auszuführen, solange die while-Bedingung zutrifft. Die Bedingung wird jedes Mal am Anfang der Schleife überprüft.

for

for-Schleifen sind die komplexesten Schleifen in PHP. Die Syntax einer for-Schleife ist:

ausdruck1 wird vor Ausführung der Schleife ausgeführt.

ausdruck2 wird am Anfang jedes Schleifendurchlaufs ausgeführt. Wenn diese true ergibt, wird die Schleife fortgesetzt. Ergibt sie false, wird die Ausführung der Schleife abgebrochen.

ausdruck3 wird am Ende jedes Schleifendurchlaufs ausgeführt.

foreach

Das foreach-Konstrukt bietet eine einfache Möglichkeit durch Arrays zu iterieren (=schrittweise durchlaufen).

Es existiert eine zweite Schreibweise für foreach, bei der zusätzlich der Array-Schlüssel in eine Variable geschrieben wird.

Alternative Schreibweisen

Für Kontrollstrukturen gibt es eine alternative Schreibweise, die besonders beim Generieren von HTML oft besser lesbar ist.

Bei der alternativen Schreibweise werden keine { } verwendet:

Anwendungsbeispiel beim Generieren von HTML:

Herkömmliche Schreibweise...

Aufgabe

Kommentiere nun sämtliche Ausgabefunktionen in der Datei index.php aus. Kommentiere in der Datei index.php die Script-Einbindung der Datei index.view.php wieder ein.

Ändere die Datei index.view.php so ab, dass alle Fahrzeuge aufgelistet werden, welche du heute benutzt hast:

Last updated

Was this helpful?