Альтернативный синтаксис управляющих конструкций PHP
Вы уже наверняка знаете, как осуществляется вставка HTML-кода в тело сценария. Для этого достаточно просто закрыть скобку ?>, код, а затем снова открыть ее при помощи <?, и продолжать программу.
Возможно, вы обратили внимание на то, как это некрасиво выглядит. Тем не менее, если приложить немного усилий для оформления, все окажется не так уж и плохо. Особенно, если использовать альтернативный синтаксис if-else и других конструкций языка.
Чаще всего нужно делать не вставки HTML внутрь скрипта, а вставки кода внутрь HTML. Это гораздо проще для дизайнера, который, возможно, в будущем захочет переоформить сценарий, но не сможет разобраться, что ему изменять, а что не трогать. Поэтому целесообразно бывает отделять HTML-код от программы (скрипта), например, поместить его в отдельный файл, который затем подключается к скрипту при помощи конструкции include. Вот, например, как будет выглядеть сценарий, который приветствует пользователя по имени, с использованием альтернативного синтаксиса if-else:
<?if(@$name):?>
Привет, <?=$name?>!
<?else:?>
<form action=<?=$REQUEST_URI?> method=get>
Ваше имя: <input type=text name=name><br>
<input type=submit value="Отослать!">
<?endif?>
Согласитесь, что даже человек, совершенно не знакомый с PHP, но зато хорошо разбирающийся в HTML, легко сможет понять, что к чему в этом сценарии. Рассмотрим альтернативный синтаксис для некоторых конструкций в контексте использования его совместно с HTML:
Альтернативный синтаксис для if-else
Общий вид альтернативного синтаксиса для if-else такой:
<?if (логическое_выражение):?>
...HTML-код...
<?else (другое_логическое_выражение):?>
...HTML-код...
<?endif?>
Альтернативный синтаксис для цикла while
<?while (логическое_выражение):?>
...HTML-код...
<?endwhile;?>
Пример использования альтернативного синтаксиса для цикла while:
<?while($x<10):?>
<h2><?echo $x; $x++;?></h2>
<?endwhile;?>
Альтернативный синтаксис для цикла for
<?for(инициализирующие_команды; условие_цикла; команды_после_прохода):?>
...HTML-код...
<?endfor;?>
Пример использования альтернативного синтаксиса для цикла for:
<?for($z=1;$z<=10;$z++):?>
<h2><?echo $z;?></h2>
<?endfor;?>
Как мы видим, использование альтернативного синтаксиса позволяет сделать сценарии PHP удобочитаемыми в тех случаях, когда необходимо активно оперировать PHP совместно HTML-кодом.