Альтернативный синтаксис управляющих структур
(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
считается частью закрывающего ?>
и следовательно ничего не выводится между
switch
и case
:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>