问题描述

我已经看到,建议 (特别是 php 7) 不能用?> 关闭 php 文件

我的许多 WP php 文件结束如下:

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

我应该删除结束标签,并有这样的东西

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

在我的文件结尾?

最佳解决方案

是的,请避免在文件末尾关闭 PHP 标签,不仅使用 PHP 7,还可以使用 PHP 5 。

原因是,如果关闭标签,标签之后的任何东西,甚至是空行,都将被发送到输出,并且将使 PHP 发送头部,以防止 cookie 被设置,重定向到工作,feed 有效,等等。

我想你曾经遇到过一个消息

Cannot modify header information – headers already sent by (output started at …) in … on line …

文件结尾的关闭?> 可能是原因。

次佳解决方案

鉴于您的具体示例,我将保留结束标签,即模板中的 one-line 函数调用。它是一致的,有助于清晰 (与 WordPress 推荐 trailing commas for arrays 相同) – 否则假设一个 non-developer 拾取您的文件并开始添加:

<?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

我发现它更清洁,正如其他人所说,没有可怕的 「头已经发送」 的风险。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。