PHP回声与PHP短标签

他们是平等的安全吗? 我被告知使用

<?=$function_here?> 

不太安全,并且减慢了页面加载时间。 我严格偏向于使用回声。

有什么优点/缺点?

<? <?=被称为短开标签,并不总是启用(见short_open_tag指令)与PHP 5.3或更低版本(但自PHP 5.4.0, <?=始终可用)。

实际上,在PHP 5.3.0提供的php.ini-production文件中,默认情况下它们是禁用的:

 $ grep 'short_open' php.ini-production ; short_open_tag short_open_tag = Off 

因此,在要分发的应用程序中使用它们可能不是一个好主意:如果未启用,则应用程序将无法工作。

另一方面, <?php不能被禁用 – 所以,使用这个是最安全的,即使写入时间更长。

除了短打开的标签不一定是启用的事实,我不认为有很大的区别。

回声通常只是更好地使用,因为…

  1. 它支持良好的编程风格。
  2. 它不能在php.ini中closures(短标签可以)
  3. 短标签将被删除在PHP 6)

但是,他们一般都是一样的。 也可以看看:

  1. PHP短标签可以接受使用吗?
  2. PHP中的echo和print有什么不同?

除了关于使用短标签是否是好主意的整个半宗教性辩论,以及是否应该考虑使用短标签,最初的问题是他们使用的安全性或不安全性。

简而言之,如果您在不支持它们的服务器上使用短标签,则可能会暴露部分PHP代码,这可能会被视为安全漏洞。

http://php.net/manual/en/language.basic-syntax.phpmode.php指出:;

从PHP 5.4开始,无论short_open_tag设置如何,短回显标签总是被识别并且有效。

short_open_tag Off或On不再重要。

所以,现在你可以不用担心,在你的模板里放置这样的标签:

  <?= (($test) ? "val1" : "val2") ?> 

现在是正式的,“短回声标签”与“短标签”是非常不同的。

只是为了宣传PSR的另一个来源: http : //www.php-fig.org/psr/psr-1/

PHP代码必须使用长标签或短标签; 它不能使用其他标签变化。

具体说明:

  <?php ?> and <?= ?> 

那么他们为什么不删除选项来closures短打开的标签,并让它默认启用。

这是PHP非常危险的举动。 原因是,如果您将现有代码中包含短标签的代码放在PHP6服务器上,并且有人查看该页面,则会将原始代码下载到您可以查看的浏览器中。 这可能会严重损害PHP。

您应该使用<\?=并请求您的系统pipe理员/主机打开short_open_tags,它没有任何缺点closures,也没有减速,parsing器寻找<\? 在索引里寻找<\?php的相同方式,二元search(也许

另外,PHP 5.5已经默认打开了,而长期使用<\?=将被优先使用,而<\?php echo被弃用。

如果不是surte,那么有点Google使用帮助很多= D