PHP 是 Web 开发中最常用的编程语言之一。这种语言最重要的特征之一是它提供了不同的限制方法。让我们简单看一下 PHP 的开始和结束标签:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

为了更高效地使用PHP,有必要了解这些标签的区别和重要性。在本文中,我们将学习如何有效地使用 PHP 标签。

为什么我们不应该使用短 PHP 标签?

简短的 PHP 标签对于简化编码和提高编码速度更加有用。然而,在大多数主机和服务器上,它在 PHP.ini 配置中默认被禁用。在 PHP.ini 配置中让这些短标签发挥作用 short_open_tag 必须激活选项。所以唯一肯定适用于每个 PHP 服务器的方法是 。如果您正在考虑将 PHP 部署到您无法控制的服务器上,您始终可以 <?php ?> 你应该使用该方法。

简短的 PHP Echo 标签和 PHP.ini

<?php echo() ?>

在 PHP 中 <?= PHP 配置中的标签 short_open_tag 无论该选项是否启用,它都可以使用,因此您可以安全地使用此快捷方式而不是上面的快捷方式。
如果您只是为自己编写代码并且可以控制您使用的 PHP 配置,您可能会发现短标签更有用。但请记住 <? ?> 标签可能与 XML 声明冲突。还有 <% %> 该标签实际上是ASP风格的。

PHP 结束标签和潜在问题

关闭纯 PHP 文件(例如,仅包含类定义的文件) ?> 添加标签时,请注意不要留下任何空行。虽然 PHP 解释器可以安全地“执行”结束标记后的单个换行符,但其他换行符可能会输出到浏览器。如果您随后编写 HTTP 标头,事情可能会变得更加混乱。

PHP PSR-2

PSR-2 编码标准是 PHP PSR 编码标准的一部分,创建的目的是确定 PHP 的最佳实践。 PSR-2 编码标准仅适用于包含 PHP 代码的文件。 ?> 建议不要使用结束标签。此建议的主要原因是为了防止在结束标记后意外留下的空格或换行符等字符发送到浏览器。在 PHP 中, ?> 标签后面的任何字符都会自动被视为 HTML 输出的一部分。在处理 HTTP 标头时,这可能尤其成问题。

PHP 文件末尾的不必要字符可能会导致 HTTP 标头无法被正确处理。在HTTP协议中,任何输出都无法发送标头,因为标头必须在内容发送之前完成。这会导致一个称为已发送标头的问题,该问题可能会影响启动会话、设置 cookie 或重定向页面等操作。

因此,PSR-2 建议不要在仅包含 PHP 代码的文件中使用结束标记,以避免此类常见错误并保持代码的整洁。这种方法消除了由于代码末尾不需要的空格或行尾字符而可能出现的问题,并有助于 PHP 脚本的更稳定和无错误的运行。

PHP 标签和兼容性

为旧版本编写 Web 应用程序时,关闭 ?> 带有标签的 html <!doctype> 小心不要在标签之间留下新行。如果旧版本的 IE 在 doctype 声明之前遇到任何空格(包括换行符),则可能会引发不同的错误。对于较新版本的 IE 和其他更高级的浏览器,情况并非如此。 (即,适用于除 IE 之外的所有浏览器。)