Когда PHP разбирает файл, он просто передаёт текст файла, пока не обнаружит
один из специальных тэгов, который говорит о необходимости начать
интерпретацию текста как кода PHP. Разборщик выполняет весь найденный код
до закрывающего тэга PHP, который говорит разборщику, что нужно снова
начать просто передавать текст. Этот механизм позволяет внедрять PHP-код в HTML:
всё за пределами тэгов PHP остаётся без изменений, а внутри тэгов - разбирается как код.
Имеются четыре набора тэгов, которые используются для обозначения блоков кода PHP.
Только два из них (<?php. . .?> и <script
language="php">. . .</script>) всегда доступны; другие можно
включать и отключать из файла конфигурации php.ini. Хотя сокращённые тэги и тэги в стиле ASP могут быть удобны, они не так
переносимы, как их длинные версии. Также, если вы предполагаете внедрять
PHP-код в XML или XHTML, нужно использовать форму <?php. . .?> для соответствия XML.
Тэги, поддерживаемые PHP:
Пример 5-1. Способы выхода из HTML
1. <?php echo("если вы хотите работать с документами XHTML или XML, делайте так
"); ?>
2. <? echo ("это простейшая SGML-инструкция процессинга
"); ?>
<?= выражение ?> Это аббревиатура для "<? echo выражение ?>"
3. <script language="php">
echo ("некоторые редакторы (вроде FrontPage) не любят
инструкции процессинга");
</script>
4. <% echo ("Вы можете по выбору использовать тэги в стиле ASP"); %>
<%= $variable; # Это аббревиатура для "<% echo . . ." %>
Первый способ, <?php. . .?>, это предпочтительный метод, так как он
позволяет использовать PHP в коде, соответствующем правилам XML, таком как XHTML.
Второй способ вообще невозможен. Сокращённые тэги доступны только тогда,
когда они подключены. Это можно сделать функцией short_tags() (только в PHP 3), включив
установку конфигурации short_open_tag в PHP
config-файле, или скомпилировав PHP с опцией --enable-short-tags в configure. Даже если вы по
умолчанию включили в php.ini-dist, использование сокращённых тэгов не рекомендуется.
Четвёртый способ доступен, только если тэги в стиле ASP включены с
использованием установки конфигурации asp_tags.
Примечание: поддержка тэгов ASP-стиля была введена в версии 3.0.4.
Примечание:
использование сокращённых тэгов должно быть исключено при разработке
приложений или библиотек, предназначенных для распространения или при публикации на
PHP-серверы, которые вами не контролируются, поскольку сокращённые тэги
могут не поддерживаться на целевом сервере. Для обеспечения
переносимости и распространения кода не используйте сокращённые тэги.
Закрывающий тэг блока будет иметь следом за собой ведомый символ newline,
если он имеется. Также закрывающий тэг автоматически подразумевает точку с
запятой; вам не нужно также вводить символ "точка с запятой" в конце последней строки PHP-блока.
Этот код работает так, как ожидается, поскольку, когда PHP встречает
закрывающие тэги ?>, он просто начинает выводить всё, что обнаруживает
после них, до обнаружения другого открывающего тэга. Этот пример, конечно,
надуманный, но при выводе больших блоков текста выход из режима разбора
PHP обычно более эффективен, чем отправка всего текста через
echo() или print() или что-нибудь похожее.