(PHP 4, PHP 5)
Конструкция elseif, как ее имя и говорит есть сочетание
if и else. Аналогично
else, она расширяет оператор if
для выполнения различных выражений в случае, когда условие начального оператора
if эквивалентно
FALSE
. Однако, в отличии от
else, выполнение альтернативного
выражения произойдет только тогда, когда условие оператора elseif
будет являться равным TRUE
. К примеру,
следующий код может выводить a больше, чем
b, a равно b
or 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;
?>