Закрытие тега PHP - когда это необходимо? - PullRequest
4 голосов
/ 04 мая 2009

Рекомендуется , чтобы не ставить закрывающий тег PHP в конце файла, чтобы избежать всевозможных нежелательных ошибок. Но есть ли обстоятельства, когда необходимо закрыть тег PHP?

Ответы [ 6 ]

17 голосов
/ 04 мая 2009

Закрывающий тег необходим, если вы хотите переключиться с блока кода PHP на вывод простого текста.

Вот пример:

<?php
    // PHP code block
?>
<!-- plain text output and not processed by PHP -->
</body>
9 голосов
/ 04 мая 2009

Кстати, если вы хотите узнать, какую ошибку вы предотвращаете, пропустив закрывающий тег. Поскольку объяснение Зенда не идет в подробности.

Это не требуется PHP, и его пропуск предотвращает случайную вставку в пробел конечного пробела.

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

}
?>
 //space here

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

5 голосов
/ 04 мая 2009

Это мое личное «правило»:

  • Файл только с php кодом: Никогда не заканчивайте тег
  • Файл с php, смешанным с чем-то другим (например, HTML): Всегда заканчивать тег
3 голосов
/ 04 мая 2009

Требуется только в том случае, если вы хотите вывести не-php-код после вашего php-блока.

1 голос
/ 04 мая 2009

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

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

1 голос
/ 04 мая 2009

Когда вы не просто используете PHP в скрипте: -)

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