【问题标题】:Difference in php syntax of <?php ?> and <? ?> [duplicate]<?php ?> 和 <? php 语法的区别?> [重复]
【发布时间】:2011-06-22 19:51:16
【问题描述】:

可能的重复:
What is the difference between the PHP open tags “<?=” and “<?php”/“<?”?
Reference - What does this symbol mean in PHP?

&lt;?php ?&gt;&lt;? ?&gt;这样的语法真的有什么区别吗?

我的印象是,只要文件具有 .php 扩展名,这真的无关紧要。但有时我似乎遇到了语法问题。

那么内幕是什么?

【问题讨论】:

    标签: php


    【解决方案1】:

    后者称为短标签。

    您可以在 php 的配置中禁用这些标签,除此之外并没有真正的区别。

    因为您可以禁用它们,所以您应该不要使用它们,因为当您碰巧在无法启用它们的服务器上运行脚本时,它们可能会导致许多意想不到的问题。 Sjoerd 在评论中指出的另一个原因是,例如,当您有 XML 标头时,它们可能会导致冲突。

    如果您启用短标签,您将获得 echo 函数的简写语法:&lt;?= $string ?&gt;

    使用 php.ini 中的short_open_tag 设置启用它。你可以阅读它here

    更新 自 PHP 5.4.0 alpha1 起:

    &lt;?= 现在始终可用,无论 short_tags 设置如何 (拉斯穆斯)

    【讨论】:

    • 确实如此。您应该始终使用长版本,以防在您要部署的服务器上禁用短标签。另外,在编写 &lt;?xml ?&gt; 标头时要考虑到这一点。
    【解决方案2】:

    以下内容适用于所有服务器。

    <?php // some logic in here ?> 
    <?php echo "cat"; ?>
    

    以下内容适用于为短标签正确配置了 php.ini 的服务器。

    <? // some logic in here ?>
    <?= "cat" ?>
    

    【讨论】:

    • 所以我想这就是为什么有时会因为后一种语法而出现上述问题....
    • @user597272 正确,请给我的答案投票正确,如果这很好,请给我投票。我在这里靠积分生存。
    【解决方案3】:

    关于短标签的一个小危险是,如果 php.ini 设置不正确,您的源代码可以在 Internet 上获得。所以

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 2014-07-24
      • 2012-10-31
      • 2011-05-29
      • 2013-03-11
      • 2012-08-29
      • 2011-04-08
      • 2011-05-21
      • 1970-01-01
      相关资源
      最近更新 更多