Закрыть или не закрыть php

Я прочитал, что рекомендуется (особенно с php 7) не закрывать php-файлы с помощью ?>

Многие мои WP php-файлы заканчиваются следующим образом:

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Должен ли я удалить закрывающий тег и иметь что-то вроде этого

<?php get_sidebar(); ?>
<?php get_footer(); 

в конце моих файлов?

12 голосов | спросил IXN 4 FriEurope/Moscow2015-12-04T15:01:38+03:00Europe/Moscow12bEurope/MoscowFri, 04 Dec 2015 15:01:38 +0300 2015, 15:01:38

2 ответа


16

Да, пожалуйста, не закрывайте теги PHP в конце файла не только с помощью PHP 7, но и с PHP 5.

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

Я предполагаю, что вы когда-либо сталкивались с сообщением типа

  

Невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод запущен в ...) в ... on line ...

Закрытие ?> в конце файла может быть причиной.

ответил gmazzap 4 FriEurope/Moscow2015-12-04T18:27:42+03:00Europe/Moscow12bEurope/MoscowFri, 04 Dec 2015 18:27:42 +0300 2015, 18:27:42
11

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

<?php get_footer();

<div>What the hell am I doing wrong?</div>

Однако для всех других файлов (функций, включений и т. д.) совет, безусловно, является хорошей идеей:

<?php // Start of file

class MY_Class {
    function just_do_it() {
    }
}

// Bye bye closing tag

Я считаю, что он чище, и, как говорили другие, риск ранних «заголовков уже отправлен».

ответил TheDeadMedic 4 FriEurope/Moscow2015-12-04T20:36:55+03:00Europe/Moscow12bEurope/MoscowFri, 04 Dec 2015 20:36:55 +0300 2015, 20:36:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132