(PHP 4, PHP 5, PHP 7, PHP 8)
PHP предлагает альтернативный синтаксис для отдельных
управляющих структур языка, а точнее: if
,
while
, for
,
foreach
и switch
.
Для каждой управляющей структуры базовую форму альтернативного синтаксиса получают
путём изменения открывающей фигурной скобки на двоеточие :, а закрывающей —
на инструкцию, которая соответствует названию структуры: endif;
,
endwhile;
, endfor;
, endforeach;
или endswitch;
.
<?php if ($a == 5): ?>
A равно 5
<?php endif; ?>
В приведённом примере, HTML-блок "A равно 5" вложили
в конструкции if
, которую записали альтернативным синтаксисом.
Блок HTML-разметки отобразится, только если переменная $a равна 5.
Альтернативный синтаксис также применяется к конструкциям else
и elseif
. Следующий пример показывает структуру
конструкции if
с конструкциями elseif
и else
в альтернативном формате:
<?php
if ($a == 5):
echo "Значение переменной $a равно 5";
echo "...";
elseif ($a == 6):
echo "Значение переменной $a равно 6";
echo "!!!";
else:
echo "Значение переменной $a не равно ни 5, ни 6";
endif;
?>
Замечание:
Смешивание синтаксиса в одном и том же блоке управления не поддерживается.
Любой вывод, включая пробельные символы, между инструкцией switch
и первой инструкцией case
вызовет синтаксическую ошибку.
Например, следующий синтаксис недопустим:
<?php switch ($foo): ?>
<?php case 1: ?>
// ...
<?php endswitch; ?>
При этом следующий пример содержит допустимый код,
поскольку завершающий символ новой строки после инструкции
switch
PHP рассматривает как часть закрывающего тега ?>
и поэтому между инструкциями switch
и case
ничего не выводится:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>
Дополнительные примеры приводят страницы описания циклов while и for, и конструкци if.