【问题标题】:Difference between <?php and <?<?php 和 <?
【发布时间】:2009-11-27 12:04:58
【问题描述】:

我是 php 新手,想知道这些服务器标签之间是否有任何区别:

<?php
?>

<?
?>

【问题讨论】:

    标签: php syntax


    【解决方案1】:

    第一个是安全的开闭标签变体,第二个是所谓的短开标签。第二个并不总是可用,如果可能,请使用第一个选项。 您可以在 php.ini 中的 short_open_tag 处检查短开放标签的可用性。

    【讨论】:

    • &lt;?= $test ?&gt; 等价于&lt;?php echo $test ?&gt;
    【解决方案2】:

    短开放标签的问题在于:

    <?xml version="1.0" ?>
    

    如果允许您使用短标签(即&lt;??&gt;),将会出现问题。 &lt;?php 不太容易被误解。

    是否允许使用短标签由 ini 指令 short_open_tag 定义。

    【讨论】:

      【解决方案3】:

      另外,我认为在即将发布的版本之一中删除了短标签。

      编辑:我错了。

      再见

      http://phpmysqldev.blogspot.com/2007/05/php-6.html

      【讨论】:

        【解决方案4】:

        没有 AFAIK,但是我有服务器(共享),其中的设置不支持速记标签 &lt;? ?&gt;,所以我通常坚持使用 &lt;?php ?&gt;

        【讨论】:

          【解决方案5】:

          没有区别。

          使用&lt;? ?&gt; 的能力在您的 php.ini 文件中定义 - 通常只能由服务器主机访问。

          您可以找到更多信息here

          【讨论】:

          • 一般在php.ini中定义
          • 啊哈!容易犯错;)
          【解决方案6】:

          注意 short_open_tag = Off 不影响 &lt;?= 速记标签,相当于 &lt;?php echo

          【讨论】:

            【解决方案7】:

            正如@erenon 在这里解释的那样:https://stackoverflow.com/a/1808372/1961535

            不同之处在于 short_open_tag 在某些情况下不可用。您可以通过访问 php.ini 文件来检查状态,但在共享托管服务器的情况下,主机并不总是允许编辑 php.ini 文件。

            您可以按照此处的说明轻松打印 phpinfo: https://www.php.net/manual/en/function.phpinfo.php

            phpinfo();
            

            如下图搜索short_open_tag

            使用完整标签总是更好,因为每个版本的 PHP 天气旧文件或新文件总是支持它。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-03-25
              • 2015-01-23
              • 2016-12-02
              • 1970-01-01
              • 2015-04-16
              • 1970-01-01
              • 1970-01-01
              • 2010-11-22
              相关资源
              最近更新 更多