Я столкнулся с учебным пособием (могущественным, если можно добавить), где закрывающий тег php ?>
Был опущен. Это напомнило мне предыдущий учебник, в котором автор сказал, что на самом деле лучше не закрывать тег, но не объяснил почему. Я немного удивлен, я подумал, что лучше закрыть тег. Почему лучше не закрывать его и все это время или только в особых случаях.
Поскольку любые пробелы после заключительного закрывающего тега могут привести к сбою сценария или к нежелательному выходу в браузер. Некоторые структуры, такие как Zend Framework, включили исключение окончательного закрывающего тега в качестве рекомендуемой практики разработчикам приложений, использующим ZF, чтобы избежать таких ситуаций и как требование в соответствии со стандартами их кодирования:
Для файлов, содержащих только код PHP, закрывающий тег («?>») Никогда не разрешается. Это не требуется PHP, и его исключение предотвращает случайную инъекцию заднего пробела в ответ.
Тем не менее, опускание закрывающих тегов очень обходное решение для проблемы, для которой основная причина еще не решена. Это сообщение в блоге утверждает то же самое.
Ну, если у вас есть файл include, такой как config.php, и вы не хотите, чтобы он выводил какие-либо символы, потому что он не предназначен или вы не хотите запускать «уже отправленные заголовки», вы можете оставить закрывающий тег выключенным, чтобы убедиться никакие пробелы не отправляются в браузер. Вы обнаружите, что файлы, которые являются чистым PHP и не содержат какого-либо контента, который будет выводиться, обычно не включают закрывающий тег.
Суть в том, что вы не хотите предварительно наносить контент до того, как будут установлены какие-либо заголовки. Об этом подробно говорится здесь .
В дополнение к другим замечательным ответам, я хотел бы отметить, что эта практика в основном используется в файлах, содержащих только PHP-код.
Я всегда закрываю последний тег при редактировании шаблонов / представлений, поэтому мне не нужно, когда я добавляю другой контент ниже этой точки.