Конструкция if elseif - PHP
В этом уроке вы узнаете о конструкции if elseif в PHP, которая позволяет выполнять блоки кода в зависимости от нескольких логических выражений.
Введение
Конструкция if оценивает выражение и выполняет блок кода, если выражение истинно:
<?php
if (выражение) {
инструкция;
}Конструкция if может содержать один или несколько необязательных блоков elseif. Конструкция elseif представляет собой комбинацию операторов if и else:
<?php
if (выражение1) {
инструкция;
} elseif (выражение2) {
инструкция;
} elseif (выражение3) {
инструкция;
}PHP оценивает выражение1 и выполняет блок кода в конструкции if, если выражение1 истинно.
Если выражение1 ложно, PHP оценивает выражение2 в следующем блоке elseif. Если результат истинен, PHP выполняет инструкцию в этом блоке elseif. В противном случае PHP оценивает выражение3.
Если выражение3 истинно, PHP выполняет блок, следующий за блоком elseif. В противном случае PHP его игнорирует.
Обратите внимание, что при наличии у конструкции
ifнескольких блоковelseif, блокelseifвыполнится только в том случае, если выражение в предшествующем блокеifилиelseifоценивается какfalse.
Следующая блок-схема иллюстрирует, как работает конструкция if elseif:

В следующем примере используется оператор if elseif для отображения того, является ли переменная $x больше переменной $y:
<?php
$x = 10;
$y = 20;
if ($x > $y) {
$message = 'x больше y';
} elseif ($x < $y) {
$message = 'x меньше y';
} else {
$message = 'x равно y';
}
echo $message;Вывод:
x меньше yСкрипт показывает сообщение x меньше y, как и ожидалось.
Альтернативный синтаксис if elseif в PHP
PHP также поддерживает альтернативный синтаксис elseif без использования фигурных скобок, например:
<?php
if (выражение):
инструкция;
elseif (выражение2):
инструкция;
elseif (выражение3):
инструкция;
endif;В данном синтаксисе:
- Используйте две точки (
:) после каждого условия, следующего за ключевыми словамиifилиelseif. - Используйте ключевое слово
endifвместо фигурной скобки (}) в конце оператораif.
В следующем примере используется альтернативный синтаксис с elseif:
<?php
$x = 10;
$y = 20;
if ($x > $y) :
$message = 'x больше y';
elseif ($x < $y):
$message = 'x меньше y';
else:
$message = 'x равно y';
endif;
echo $message;Альтернативный синтаксис подходит для использования с HTML.
elseif и else if в PHP
PHP позволяет использовать else if (в двух словах), что имеет тот же результат, что и elseif (в одном слове):
<?php
if (выражение) {
инструкция;
} else if (выражение2) {
инструкция2;
}В данном случае, else if эквивалентен следующей вложенной структуре if...else:
if (выражение) {
инструкция;
} else {
if (выражение2) {
инструкция2;
}
}Если вы используете альтернативный синтаксис, вам нужно использовать оператор if...elseif вместо оператора if...else if. В противном случае возникнет ошибка.
Следующий пример не будет работать и вызовет ошибку:
<?php
$x = 10;
$y = 20;
if ($x > $y) :
echo 'x больше y';
else if ($x < $y):
echo 'x меньше y';
else:
echo 'x равно y';
endif;Подытожим
- Используйте оператор
if...elseifдля оценки нескольких выражений и выполнения блоков кода условно. - Только оператор
if...elseifподдерживает альтернативный синтаксис, операторif...else if- нет. - Всегда используйте
elseif, когда это возможно, чтобы сделать ваш код более последовательным.
switch в PHP, который выполняет блок кода, сопоставляя выражение с несколькими значениями. var_dump() для вывода информации о переменной.