代码之家  ›  专栏  ›  技术社区  ›  homework

php echo与php短标记

  •  60
  • homework  · 技术社区  · 15 年前

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

    <?=$function_here?>
    

    不太安全,并且会减慢页面加载时间。 我完全倾向于使用echo。

    优势/劣势是什么?

    7 回复  |  直到 8 年前
        1
  •  94
  •   Jonathan Leffler    12 年前

    <? <?= 被称为短打开标签,并不总是启用(请参见 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 在另一方面,不能禁用——所以,使用这个是最安全的,即使它的写入时间更长。


    除了短开放标签不一定是启用的这一事实外,我认为没有什么不同。

        2
  •  32
  •   Community CDub    8 年前

    Echo通常更好用,因为…

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

    但是,它们通常是相同的。参见:

    1. Are PHP short tags acceptable to use?
    2. How are echo and print different in PHP?
        3
  •  19
  •   Frank    14 年前

    除了关于是否使用短标签是一个好主意以及是否应该被视为不赞成使用的半宗教性辩论之外,最初的问题是如何安全或不安全地使用短标签。

    简单地说,如果在不支持短标记的服务器上使用短标记,则可能会暴露部分PHP代码,这可能被视为安全漏洞。

        4
  •  11
  •   Phil Blouarf    8 年前

    http://php.net/manual/en/language.basic-syntax.phpmode.php 国家:

    从php 5.4开始,不管 short_open_tag 设置。

    短开口标签 关或开不再重要了。

    因此,现在您可以不必担心地在模板中放置这样的标签:

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

    现在是正式的了,“短回音标签”和“短标签”有很大的不同。

        5
  •  4
  •   leopold    9 年前

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

    PHP代码必须使用长标记或短echo标记;不能使用其他标记变体。

    指定:

     <?php ?> and <?= ?>
    
        6
  •  0
  •   Ritey    15 年前

    所以,为什么不删除关闭short open标签的选项,让它在默认情况下启用呢?

    这是一个非常危险的PHP操作。原因是,如果您将现有的带有短标记的代码放在php6服务器上,并且有人查看了该页面,那么他们会将原始代码下载到您可以查看的浏览器中。这可能会严重杀死PHP。

        7
  •  -5
  •   Lucas    13 年前

    您应该使用<\?=并要求您的系统管理员/主机打开短的“打开”标记,它没有任何要关闭的缺点,也没有任何减速,解析器查找<\?它查找<\的方式相同?索引中的php,binnary search(可能

    另外,已经在php 5.5上了<\?=将在默认情况下打开,并在长期<\?=will be preferred while<\?php echo半弃用。

    如果还没有冲浪……一点谷歌搜索帮助很大=d