elseif/else if

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

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно false. Однако, в отличие от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора 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. Первое выражение elseif (если оно есть) равное true будет выполнено. В PHP вы также можете написать 'else if' (в два слова), и тогда поведение будет идентичным 'elseif' (в одно слово). Синтаксически значение немного отличается (если вы знакомы с языком С, это то же самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны false, а текущий elseif равен true.

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются синтаксис с двоеточием для определения условий if/elseif, вы не должны разделять else if на два слова, иначе это вызовет фатальную ошибку в PHP.

<?php

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


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

?>