Другие языки программирования и технологии

Правда ли что закрывающий тэг для php "?>" не рекомендуется ставить в конце страницы?

Прочитал сейчас статью там было написано что не рекомендуется в конце страницы ставить закрывающий тэг для php. Возможно я неправильно понял или это действительно так?
Прикольно!

Php - это Печаталка и ВСЁ.

Сервер ВЫВОДИТ из файла .php всё, что заключено между тегами

<?php ?>

ЭТО ВСЁ, что делается. Никаким образом невозможно записать хоть что-то в файл .php, в том числе и перед последним тегом, так как вывод обеспечивает СЕРВЕР, то есть в первую очередь надо что-то попытаться записать на сам Сервер, так как ЛЮБОЕ обращение к файлу .php никаким образом не выводит его сам и не может подключить его к записи.

Поэтому мне довольно весело читать, ТАКОЕ.

По поводу того, что есть переход на новую строку в конце файла: Поставьте их сто тысяч, от этого совсем НИЧЕГО не изменится, ИСПОЛНЯЕТСЯ всё то, что находится между тегами <?php ?>

По поводу того, что в Php многое не надо, например объявлять переменные и их свойства, и тот же конец файла .php - по поводу Первых - да, можно ничего не объявлять, но заключительный тег ставить надо обязательно, хотя бы по той причине, чтобы не НАПРЯГАТЬ сервер, когда он всё время будет не находить конец файла и сам станет его завершать по своему усмотрению (лишние ресурсы)
ВМ
Вячеслав Михалёв
81 893
Лучший ответ
Дмитрий Никулин Вот и не поймёшь кто да говорит кто нет...вот линк мне прислали http://framework.zend.com/manual/ru/coding-standard.php-file-formatting.html там тоже говорится что не разрешается писать закрывающий тэг. Ну в принципе я всегда писал закрывающие тэги, проблем никогда не было) Да и код так выглядит более завершённым
Иван Чувардин Печаль. Полное не понимание концепции языка и его первичного назначения.
PHP родился как шаблонизатор. Всё, что находится вне тэгов ПХП будет просто выводится на печать во время интерпретации файла скрипта. И это стало первопричиной появления запрета на закрывающий тэг. Иначе, случайно попавшие после него пробельные символы просто вываливаются в браузер. Т.о. ломается вёрстка в IE, ломается установка заголовков.

Зенд не занимается шифрованием файлов. Область их разработок выходит за эти примитивные рамки.
Шифрованием занимается зенд-гвард. Оптимизацией занимается зенд-оптимайз. До недавнего времени оба продукта входили в один пакет и поставлялись вместе.

http://www.zend.com/en/company/
Учитывая, что зенд - это и есть ПХП (они его основные спонсоры и разработчики ядра языка), я не знаю более вменяемого мануала по кодированию, чем их рекомендации к стилизации кода.
мнения разделились.... спецификацию не судьба почитать?
между считается кодом пхп, а все остальное как хтмл код интерпретируется... а в хтмл любое количество пробелов браузер примет за 1 пробел в рендеринге... а перевод строки происходит специальным тегом...
Сергей Сонец
Сергей Сонец
42 851
Проблемы недоязыка.
Бред. Если страница состоит целиком из скрипта, то закрывающий тег по любому будет в конце. (ваш КЭП)
Виктор Бушило
Виктор Бушило
19 016
Дмитрий Никулин Вот и я о том же подумал. Сейчас перечитал этот абзац, всё таки там однозначно говорится о том что нельзя ставить закрывающий тэг. Могу процитировать, сам почитай:
Дмитрий Никулин Не нужно лениться. Не нужно пользоваться short-тегами. Их вообще скоро выведут из употребления, так как они пересекаются с XML. Писать нужно только так: нельзя ставить ни в коем случае. Это не просто вредно, но и опасно.
Объясню, чтоб не быть голословным.
1. После него может оказаться пробел или перенос строки. А так, как файл подключен выше доктайпа, значит и пробел вылезет туда. А это гарантированно угробит верстку в IE.
2. Всё, что написано после него, интерпретируется как HTML. А это значит, что (не дай Бог) в конец файла попадет вирус, то он сработает.
А тупые боты именно туда норовят прописать всякую гадость. Так вот, ежели его (закрывающего значка) не будет, то вирь попадет в тело php и вызовет ошибку. Плохо конечно, но лучше, чем бы он сработал у клиента.
Дмитрий Никулин Не нужно лениться. Не нужно пользоваться short-тегами. Их вообще скоро выведут из употребления, так как они пересекаются с XML. Писать нужно только так: "" нельзя ставить ни в коем случае. Это не просто вредно, но и опасно.
Объясню, чтоб не быть голословным.
1. После него может оказаться пробел или перенос строки. А так, как файл подключен выше доктайпа, значит и пробел вылезет туда. А это гарантированно угробит верстку в IE.
2. Всё, что написано после него, интерпретируется как HTML. А это значит, что (не дай Бог) в конец файла попадет вирус, то он сработает.
А тупые боты именно туда норовят прописать всякую гадость. Так вот, ежели его (закрывающего значка) не будет, то вирь попадет в тело php и вызовет ошибку. Плохо конечно, но лучше, чем бы он сработал у клиента.
Дмитрий Никулин Тьфу глупый мэйл всё обрезает...Вот тут вся статья irbis-team .com/15/10/2 (пробел убери)
Сергей Сонец и вобще как может пробел в конце страницы оказаться над доктипом,который изначально в самом верху страницы?или я чего-то не догоняю сути вопроса про конец?это уже будет чистый баг кодинга именно обожаемого автором зенда!!!или его самого...даже в этом случае ни что не мешает сперва вставить сперва доктип,а после пхп код..
Да. Слышал, что если вирус добавит какую-нибудь гадость в конец файла, интерпретатор выдаст ошибку, а не покажет это чудо клиенту.
Это неправда что нерекомендуется ставить вконце файла ?>.
Дело в том, что некоторые редакторы, например gedit, сохраняют документ так, чтобы в конце обязательно был перевод строки, при этом прячут этот перевод от пользователя как страшную тайну. В таком случае, если у тебя выдача хедеров идет после инклюда каких-либо скриптов, получится варнинг (только если выдача на этой стадии вообще не отключена, как во многих популярных движках) . Выдачу лучше не отключать, поскольку бывает при дебаге несколько строчек, добавленных в код, позволяют то, чего не умеет дебагер.