(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.