Конструкция 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
, когда это возможно, чтобы сделать ваш код более последовательным.
define()
и ключевое слово const
для определения констант. for
в PHP для многократного выполнения блока кода.