Пропуск конечного тега PHP

Во время разработки с Magento я обнаружил, что мне не нужно ставить конечный тег php (?>), Если я не использую HTML ниже кода PHP. Это безопасно и почему бы нам просто не поставить конечный тег?? Это полезно??

3 ответа

Решение

Официальная позиция:

Примечание: закрывающий тег блока PHP в конце файла является необязательным, и в некоторых случаях его пропуск полезен при использовании include() или require(), поэтому нежелательные пробелы не будут появляться в конце файлов, и вы все еще сможет добавить заголовки к ответу позже. Это также удобно, если вы используете буферизацию вывода и не хотите видеть добавленные нежелательные пробелы в конце частей, сгенерированных включенными файлами.

Это полезно при создании файлов классов / файлов кода, так как очень легко добавить дополнительный пробел или символ новой строки в конце файла, что может испортить выходную буферизацию header() выход. Так как PHP рассматривает EOF как закрытие ?> в файле нет опасности полагаться на EOF.

Да, это полезно, потому что вы не можете забыть нечетные символы, такие как \n, после закрытия тега (что может помешать отправке файлов cookie и т. Д.). В Zend Framework они также не используют закрывающие теги (как стандарт кода проекта).

Другие вопросы по тегам