## elseif/else if

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

Конструкция `elseif`, как ясно из названия, объединяет конструкции `if` и `else`. Как и конструкция `else`, она расширяет инструкцию `if`, чтобы выполнять другую инструкцию тогда, когда PHP вычисляет выражение начальной конструкции `if` как `false`. Отличие от конструкции `else` состоит в том, что конструкция `elseif` выполнит альтернативное выражение только тогда, когда PHP вычислит условное выражение `elseif` как `true`. Следующий код, в зависимости от значений переменных, будет выводить «a больше b», «a равно b» или «a меньше b»:

    <?php

    if ($a > $b) {
        echo "a больше b";
    } elseif ($a == $b) {
        echo "a равно b";
    } else {
        echo "a меньше b";
    }

    ?>

Допустимо указывать больше одной конструкции `elseif` в одной инструкции `if`. PHP выполняет первое выражение `elseif`, которое вычисляет как `true`. В PHP допустимо писать `else if` в два слова, тогда поведение будет идентичным конструкции `elseif` в одно слово. Синтаксическое отличие есть (в языке C пишут в два слова), но в итоге оба выражения дадут один и тот же результат.

PHP выполнит инструкцию `elseif` только тогда, когда вычислит предшествующее выражение `if` и предшествующие выражения `elseif` как `false`, а текущее выражение `elseif` — как `true`.

> Замечание: Заметьте, что записи `elseif` и `else if` будут равнозначны только в синтаксисе с фигурными скобками, как в приведённом примере. В синтаксисе с двоеточием для определения условий `if` и `elseif`, конструкция `elseif` пишется в одно слово. PHP выдаст ошибку синтаксического анализа и завершит работу, если запись конструкции `else if` разделена на два слова.

    <?php

    /* Некорректный способ: */
    if ($a > $b):
        echo $a . " больше " . $b;
    else if ($a == $b): // Не скомпилируется
        echo "Строка выше вызывает фатальную ошибку.";
    endif;

    ?>

    <?php

    /* Корректный способ: */
    if ($a > $b):
        echo $a . " больше " . $b;
    elseif ($a == $b): // Заметьте, тут одно слово
        echo $a . " равно " . $b;
    else:
        echo $a . " не больше и не равно " . $b;
    endif;

    ?>

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