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
不能被禁用 – 所以,使用这个是最安全的,即使写入时间更长。
除了短打开的标签不一定是启用的事实,我不认为有很大的区别。
回声通常只是更好地使用,因为…
- 它支持良好的编程风格。
- 它不能在php.ini中closures(短标签可以)
-
短标签将被删除在PHP 6)
但是,他们一般都是一样的。 也可以看看:
- PHP短标签可以接受使用吗?
- 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