elseif/else if
Конструкция elseif, как ясно из названия, объединяет
конструкции if и else.
Как и конструкция else, она расширяет инструкцию if,
чтобы выполнять другую инструкцию тогда, когда PHP вычисляет выражение начальной конструкции
if как &false;. Отличие от конструкции else состоит в том,
что конструкция elseif выполнит альтернативное
выражение только тогда, когда PHP вычислит условное выражение elseif
как &true;. Следующий код, в зависимости от значений переменных,
будет выводить
«a больше b»,
«a равно b»
или «a меньше b»:
$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 разделена на два слова.
$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;
?>
]]>