Я был поражен ответом на мою недавнюю статью « Стоит ли закрывать теги кода PHP? Я не думаю, что было бы спорным или вызвать столько споров среди разработчиков!
Напомним, закрытие тегов PHP (?>) Совершенно необязательно, если вы кодируете файл только для PHP и в нем нет смешанного HTML. Файлы, содержащие определения одного класса, являются хорошими кандидатами.
Пропуск закрывающего тега имеет еще одно преимущество: невозможно случайно добавить пробел в конец файла. Поэтому вывод не может быть отправлен в браузер до изменения заголовков страниц HTTP.
Многие респонденты считают это взломом и утверждают, что программисты PHP должны просто исправить свой код. Для других, исключение закрывающего тега исключает возможность ошибок, даже если их не было. Это может быть особенно полезно для проектов, в которых многие участники используют разные IDE.
Респонденты в основном попали в одну из трех групп:
- Разработчики PHP, возможно, работающие над более крупными проектами или командами, где пропустить закрытие?> Было полезно, рекомендовано или задокументировано как стандарт кодирования.
- Пуристы кодирования, возможно, с опытом работы в XHTML или XML, которые считают недостающие теги неправильными.
- Разработчики из других дисциплин, которые посчитали эту дискуссию смешной!
Согласно опросу SitePoint, треть разработчиков PHP не использовала закрывающий тег, третья считала это плохой практикой, а третья не понимала, что ее можно опустить.
Для записи я часто опускаю закрывающий тег. Это не имеет никакого значения для интерпретатора PHP или браузера, поэтому нет особых причин для его включения. Однако я могу понять, почему некоторым разработчикам не нравится стиль кодирования.
Были подняты некоторые интересные понятия. Во-первых, интерпретатор может принять код PHP по умолчанию и разрешить переход в HTML, например
// PHP file
DoSomeStuff();
<?html
<p>output HTML</p>
?>
DoMoreStuff();
Я подозреваю, что эта идея слишком революционная. Возможно, его можно добавить как параметр php.ini, но это сломает существующие приложения и вызовет хаос.
Тем не менее, чистые файлы PHP были идеей с большим потенциалом. По сути, вы должны указать, что файл содержит только код PHP. Это может быть достигнуто путем:
- используя специальное расширение файла, например, имя файла .pphp или
- с использованием модифицированной функции include / require, такой как
include('filename.php', PHP_ONLY);
Если бы это было реализовано, ваш PHP-код не требовал бы открытия или закрытия тегов. Кроме того, функциональность может быть добавлена без ущерба для существующих приложений PHP — она будет обратно совместимой.
Но, эй, это всего лишь идея, и она может никогда не пойти дальше этой статьи. Дебаты о стиле кодирования PHP будут бушевать…