Когда не закрыть файл php? - PullRequest
       1

Когда не закрыть файл php?

9 голосов
/ 01 ноября 2009

Я наткнулся на учебник (заслуживающий доверия, если можно, добавлю), где закрывающий тег php ?> был опущен. Это напомнило мне о предыдущем уроке, где автор сказал, что на самом деле лучше , а не , чтобы закрыть тег, но не объяснил, почему. Я немного удивлен, я подумал, что лучше закрывать тег. Почему лучше не закрывать его, и это все время или только в особых случаях.

Ответы [ 3 ]

17 голосов
/ 01 ноября 2009

Поскольку любые пробелы после последнего закрывающего тега могут привести к сбою скрипта или вызвать нежелательный вывод в браузер. Некоторые фреймворки, такие как Zend Framework, включают , исключая окончательный закрывающий тег в качестве рекомендуемой практики для разработчиков приложений, использующих ZF, чтобы помочь избежать таких ситуаций, и как требование согласно их стандартам кодирования:

Для файлов, которые содержат только код PHP, закрывающий тег ("?>") никогда не бывает разрешенный. Это не требуется PHP, и опуская это предотвращает случайная инъекция отстающих белых пробел в ответ.

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

4 голосов
/ 01 ноября 2009

Хорошо, если у вас есть включаемый файл, такой как config.php, и вы не хотите, чтобы он выводил какие-либо символы, потому что он не предназначен или вы не хотите запускать «заголовки уже отправлены», вы можете оставить закрывающий тег чтобы убедиться, что пробелы не отправляются в браузер. Вы обнаружите, что файлы, которые являются чистым PHP и не содержат никакого содержимого для вывода, обычно не содержат закрывающий тег.

Суть в том, что вы не хотите преждевременно вставлять контент до того, как установлены какие-либо заголовки. Об этом подробно говорится здесь .

2 голосов
/ 01 ноября 2009

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

Я всегда закрываю последний тег при редактировании шаблонов / представлений, поэтому мне не нужно, когда я добавляю другой контент ниже этой точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...