elseif/else if

(PHP 4, PHP 5, PHP 7)

Конструкция 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;

?>