PHP — один из наиболее часто используемых языков программирования в веб-разработке. Одной из наиболее важных особенностей этого языка является то, что он предлагает различные методы ограничения. Давайте кратко рассмотрим открывающиеся и закрывающие теги PHP:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

Чтобы более эффективно использовать PHP, необходимо понимать различия и важность этих тегов. В этой статье мы научимся эффективно использовать теги PHP.

Почему нам не следует использовать короткие теги PHP?

Короткие теги PHP могут быть более полезны для простоты и скорости кодирования. Однако на большинстве хостингов и серверов он по умолчанию отключен в конфигурации PHP.ini. В конфигурации PHP.ini для работы этих коротких тегов short_open_tag опция должна быть активирована. Таким образом, единственный метод, который определенно будет работать на каждом PHP-сервере, — это . Если вы планируете развернуть свой PHP на сервере, который вы не контролируете, вы всегда можете <?php ?> Вам следует использовать этот подход.

Короткий тег PHP Echo и PHP.ini

<?php echo() ?>

на PHP <?= тег в конфигурации PHP short_open_tag Его можно использовать независимо от того, включена эта опция или нет, поэтому вы можете смело использовать этот ярлык вместо приведенного выше.
Если вы просто пишете код для себя и можете контролировать используемую конфигурацию PHP, вам могут оказаться более полезными короткие теги. Но помните, что <? ?> тег может конфликтовать с объявлениями XML. Также <% %> Тег на самом деле выполнен в стиле ASP.

Закрывающие теги PHP и потенциальные проблемы

Закрытие чистого PHP-файла (например, файла, содержащего только определение класса) ?> Добавляя тег, будьте осторожны и не оставляйте пустых строк. Хотя интерпретатор PHP может безопасно «выполнить» один символ разрыва строки после закрывающего тега, другие разрывы строк могут выводиться в браузер. Если вы затем пишете HTTP-заголовки, все может стать еще более запутанным.

PHP PSR-2

Стандарт кодирования PSR-2 является частью стандартов кодирования PHP PSR, созданных для определения лучших практик PHP. Стандарты кодирования PSR-2 применяются только к файлам, содержащим код PHP. ?> рекомендует не использовать закрывающие теги. Основная причина этой рекомендации — предотвратить отправку в браузер таких символов, как пробелы или разрывы строк, случайно оставшихся после закрывающего тега. В PHP, ?> Любой символ, следующий за тегом, автоматически считается частью вывода HTML. Это может быть особенно проблематично при обработке заголовков HTTP.

Ненужные символы в конце файла PHP могут помешать правильной обработке заголовков HTTP. В протоколе HTTP любой вывод делает невозможным отправку заголовков, поскольку заголовки должны быть заполнены до отправки содержимого. Это вызывает проблему, известную как уже отправленные заголовки, которая может повлиять на такие действия, как запуск сеанса, установка файла cookie или перенаправление страницы.

Поэтому PSR-2 рекомендует не использовать закрывающий тег в файлах, содержащих только код PHP, чтобы избежать таких распространенных ошибок и сохранить чистоту кода. Такой подход исключает возможные проблемы, которые могут возникнуть из-за нежелательных пробелов или символов конца строки в конце кода, и способствует более стабильной и безошибочной работе PHP-скриптов.

PHP-теги и совместимость

При написании веб-приложений для более старых версий закрытие ?> html с тегами <!doctype> Будьте осторожны и не оставляйте новую строку между тегами. Старые версии IE могут выдавать различные ошибки, если перед объявлением типа документа встречаются пробелы, включая символы новой строки. Это не относится к более новым версиям IE и другим, более продвинутым браузерам. (То есть для каждого браузера, кроме IE.)