为什么我的PHP脚本中应该使用
<?php
而不是<?
?避免使用短标签的两个主要原因:
<?php
在每个启用PHP的服务器上都可以工作,但是<?
可能会被禁用PHP有两种启动方法
<?php
并且
<?
PHP还包括
<?=
但是这会打印出后面的变量,因为它是对echo的简写。
你应该使用<?php,因为它兼容所有类型的服务器。你可以将代码移动到新的托管解决方案或设置新的服务器默认值,而缩写可能会被禁用。
<?
(和<?=
)可能已被禁用。长版本的<?php
(和<?=
= <?php echo
)则可在任何地方使用。两者在语义上是相同的。<?
只是完整语法的快捷方式。
对于两个原因,我个人更喜欢关闭<?
:
<?xml version="1.0" encoding="UTF-8" ?>
开始),它会创建问题<?php
比<?
更易读且更加显眼。<?php
标记是。因此,带有<?php ... ?>
标记的PHP模板可以是有效的XML文档,而使用短标记的则不行。
需要注意的是,一些 PHP 服务器配置在开箱即用时不支持其中一个或另一个。例如,我的 Web 服务器不支持 <?,但支持 <?php。
可移植性的论点都很好,但我要说的是,除非你正在做一些真正广泛分发(源代码)或者专注于 XML 的事情,否则你应该放心使用短标签。
a) 我从来没有遇到过无法启用短标签的情况。通常它们默认就是开启的。
b) 在大多数情况下,<?
不会与 <?xml
混淆,因为它们在堆栈的不同层次上被解析。
c) 短标签不那么突兀,因此不会使你的代码变得混乱。我发现这在 <?php echo
与 <?=
方面尤其如此。(你可以争辩说,你应该避免使用其中任何一个,因为这可能意味着你正在编写意大利面条式代码,但是,拜托——这是 PHP!)
当然,这完全取决于你正在处理什么样的项目,但对于一个基本的网站来说,我认为短标签不太可能对你造成伤害。
WordPress 编码标准 表示只使用 <?php
。但他们没有解释为什么。
这可能是一个信仰问题。
<?
/<?=
的语法是基于php.ini文件中short_open_tag
参数的设置。如果您托管自己的代码库,则很容易启用该设置。但是,在共享/托管的Web主机上,您可能无法控制此设置。