【发布时间】:2010-11-26 01:49:30
【问题描述】:
它们的安全性是否相同?我被告知使用
<?=$function_here?>
不太安全,并且会减慢页面加载时间。 我严格偏向于使用 echo。
有什么优点/缺点?
【问题讨论】:
标签: php function echo pageload
它们的安全性是否相同?我被告知使用
<?=$function_here?>
不太安全,并且会减慢页面加载时间。 我严格偏向于使用 echo。
有什么优点/缺点?
【问题讨论】:
标签: php function echo pageload
<? 和 <?= 被称为短开放标签,并且在 PHP 5.3 或更低版本中并不总是启用(参见 short_open_tag 指令)(但自 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,另一方面,不能被禁用——所以,使用这个是最安全的,即使写的时间更长。
除了不一定启用短打开标签这一事实外,我认为没有太大区别。
【讨论】:
Echo 通常更好用,因为...
但是,它们通常是相同的。另见:
【讨论】:
<?= 比 <?php echo 好很多
除了关于使用短标签是否是个好主意以及是否应该被弃用的整个半宗教辩论之外,最初的问题是使用它们的安全性或不安全性。
简单地说,如果您在不支持短标签的服务器上使用短标签,您的部分 PHP 代码可能会暴露出来,这可能会被视为安全漏洞。
【讨论】:
您应该使用 = 并要求您的系统管理员/主机打开 short_open_tags,关闭它没有任何缺点,也没有减速,解析器寻找
此外,在 PHP 5.5 上 = 将默认打开,长期 = 将是首选,而
如果还不确定.. 用谷歌搜索一下会有很大帮助 =D
【讨论】:
http://php.net/manual/en/language.basic-syntax.phpmode.php 状态:
从 PHP 5.4 开始,无论
short_open_tag设置如何,短回显标签始终被识别并有效。
short_open_tag关闭或打开不再重要。
所以现在您可以毫无顾虑地在您的模板中添加这样的标签:
<?= (($test) ? "val1" : "val2") ?>
现在正式了,“短回显标签”和“短标签”有很大的不同。
【讨论】:
只是添加另一个 PSR 来源:http://www.php-fig.org/psr/psr-1/
PHP 代码必须使用长标签或短回声标签;它不得使用其他标签变体。
说明:
<?php ?> and <?= ?>
【讨论】: