## elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

`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. Im Gegensatz zu `else` werden die Alternativ-Befehle aber nur ausgeführt, wenn die `elseif`-Bedingung zutrifft. Der folgende Beispielcode gibt a ist größer als b, a ist gleich groß wie b oder a ist kleiner als b aus:

    <?php
    if ($a > $b) {
        echo "a ist größer als b";
    } elseif ($a == $b) {
        echo "a ist gleich groß wie b";
    } else {
        echo "a ist kleiner als b";
    }
    ?>

Innerhalb einer `if`-Kontrollstruktur können mehrere `elseif`-Strukturen benutzt werden. Der erste `elseif`-Ausdruck (falls vorhanden), der zu `true` ausgewertet wird, wird ausgeführt. In PHP kann ebenfalls als Schlüsselwort `else if` (in zwei Wörtern) benutzt werden, was sich komplett identisch wie `elseif` (in einem Wort) verhält. Die syntaktische Bedeutung ist geringfügig anders (dasselbe Verhalten wie in C), aber das Ergebnis ist, dass beide sich exakt genauso verhalten.

Der `elseif`-Teil wird nur ausgeführt, wenn die vorhergehende `if`-Bedingung und alle vorhergehenden `elseif`-Bedingungen nicht zutrafen (`false`) und die aktuelle `elseif`-Bedingung zutrifft (`true`).

> Hinweis: Achtung: `elseif` und `else if` verhalten sich nur gleich, wenn geschwungene Klammern verwendet werden, wie im obigen Beispiel. Wenn ein Doppelpunkt verwendet wird, um `if`/`elseif`-Bedingungen zu definieren, muss `elseif` in einem einzigen Wort verwendet werden. Wenn `else if` in zwei Wörter aufgeteilt wird, gibt PHP einen Parse-Fehler aus.

    <?php

    /* Falsch: */
    if ($a > $b):
        echo $a." ist größer als ".$b;
    else if ($a == $b): // Funktioniert nicht.
        echo "Die vorige Zeile wird einen Parse Error verursachen.";
    endif;

    <?php
    /* Richtig: */
    if ($a > $b):
        echo $a." ist größer als ".$b;
    elseif ($a == $b): // elseif in einem Wort!
        echo $a." ist gleich groß wie ".$b;
    else:
        echo $a." ist weder größer als noch gleich wie ".$b;
    endif;

    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open