LINUX.ORG.RU

Закрывающий тег в пых-пых скриптах

 ,


1

1

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

И они почему-то перевариваются интерпретатором.

Это что за мода такая?

★★★★★

Последнее исправление: Harald (всего исправлений: 1)

ЕМНИП это делается во имя отсутствия UTF8 BOM.
Сам не ставлю закрывающий ?> в конце, ибо нафига, если можно не ставить =)

NeverLoved ★★★★★
()

http://habrahabr.ru/post/142140/

Пробелы вне тэгов <?php ... ?>, даже в библиотеках, считаются текстом и включаются в ответ(или приводят к ошибкам «headers already sent»). Популярный фикс — не указывать закрывающий ?>; PHP не жалуется и у вас нет завершающей новой строки в конце файла.

chkalov
()

Ты отстал на несколько лет. Уже давно никто не закрывает теги. Почему — сказали выше.

Я бы ещё и открывающий выпилил, если бы это было возможно.

Kilte ★★★★★
()

Закрывающийся PHP-тэг — зло. Часто зеваешь после него перевод строки — и готово, скрипт начинает срать ненужным символом.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

ну дак приучает быть аккуратным :)

Если есть открывающий, должен быть и закрывающий, а то порнография какая-то получается

Harald ★★★★★
() автор топика
Ответ на: комментарий от Harald

Если есть открывающий, должен быть и закрывающий, а то порнография какая-то получается

предлагай своё решение.

emulek
()
Ответ на: комментарий от Harald

а то порнография какая-то получается

А что ты хотел от PHP?

Deleted
()
Ответ на: комментарий от Harald

ну дак приучает быть аккуратным :)

Лучше просто избегать потенциально вредоносных последствий не добавляя ненужных сущностей.

Если есть открывающий, должен быть и закрывающий

Только в частном случае валидного XHTML. Ты ещё на каждый знак «меньше» в математике знак «больше» потребуй :) Или запрети в хлебных крошках использовать закрывающуюся кавычку-лапку. Считай это не как открывающийся тег, а как признак переключения контекста транслятора. Чем оно и является.

KRoN73 ★★★★★
()

сто лет не видел закрывающих тегов и столько же бы их не видел

umren ★★★★★
()

Ничего страшного - конец файла считается закрывающим тэгом т.е. это т.н. частный случай

Ходят байки что так быстрее отрабатывает.

swwwfactory ★★
()
Ответ на: комментарий от KRoN73

Часто зеваешь после него перевод строки

Например Git ругается, если в файле нет завершающего переноса строки.

static_lab ★★★★★
()

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

Bad_ptr ★★★★★
()

использую закрывающий тег в конце файла и не имею никаких проблем с headers already sent
я, конечно, понимаю, что подстраивать велосипеды на уровне языка для криворуких это нормально, но это не значит, что эти велосипеды следует использовать повсеместно

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

использую закрывающий тег в конце файла и не имею никаких проблем

Посмотрите! Вот он без страховки идет!
Чуть левее наклон - упадет. Пропадет!
Чуть правее наклон - все равно не спасти...
Но зачем-то ему очень нужно пройти
Четыре четверти пути!

KRoN73 ★★★★★
()
Ответ на: комментарий от Harald

Если есть открывающий, должен быть и закрывающий, а то порнография какая-то получается

php - априори порнография, причем жесткая с участием костылей. Так что это норма, все привыкли.

TDrive ★★★★★
()
Ответ на: комментарий от static_lab

Например Git ругается, если в файле нет завершающего переноса строки.

И не только git, практически все линтеры и системы для кодревью

TDrive ★★★★★
()

Хватит тыкать палочкой. Сказано — ж не вытирать тег не закрывать.

/thread

deep-purple ★★★★★
()
Ответ на: комментарий от Harald

ну дак приучает быть аккуратным

не в этом языке

q11q11 ★★★★★
()

<?php ---- в начале файла это НЕ открывающий тег , а пять байтов последовательности magic-bytes :-) , которая указывает что данный файл является является php-кодом

а раз мы приходим к выводу что у нас нет открывающего тега, то значит и не нужен закрывающий....

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от ThisNameWasFree

А к какому выводу нужно теперь придти если в файле `<?php` начнётся со второй строки или вовсе с `<?`?

в этом случае — я НЕ считаю это magic-bytes .. и следовательно закрвать — нужно!

:-)

а чтобы не было бы путанницы — предлагаю в середине файла НЕ использовать ``<?php`` , а использовать только ``<?`` (в середине файла) .

а вот ``<?php`` — предлагаю использовать только в качестве magic-bytes :) [и, следовательно, не закрывать его].

[[но в любом случае если ``<?php`` находится НЕ в начале файла — то это не magic-bytes ]]

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 5)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.