Необязательный закрывающий тег PHP
Проводя очередной Code Inspection в превосходной среде JetBrains PhpStorm 6.0 наткнулся на следующий результат.
В файлах, где содержался чистый PHP-код (без примеси HTML) на строке с закрывающий тегом «?>» анализатор выдал Redundant closing tag. Что означает «Избыточный закрывающий тег».
Полез читать. Оказывается, теги действительно не рекомендуется закрывать, поскольку если случайно после тега оставить, например, пробел, то он соответственно попадет в выходной поток и породит ошибку headers already sent.
Для меня это было открытием, я всегда их ставил дабы выдержать «правильное» оформление кода. На всяческих форумах пишут, что мол это указано в каждой книжке для чайников. Я открыл свою книжку и не нашел там такого. Большую часть знаний по PHP были получены не из книжек, а из интернета. И там я такого не встречал.
Вот ссылка на php.net по этому поводу.
И выдержка:
«Если файл содержит только код PHP, предпочтительно опустить закрывающий тег в конце файла. Это помогает избежать добавление случайных символов пробела или перевода строки после закрывающего тега PHP, которые могут послужить причиной нежелательных эффектов, так как PHP начинает выводить данные в буфер при отсутствии намерения у программиста выводить какие-либо данные в этой точке скрипта.»