【问题标题】:What is the PHP syntax "<?="PHP 语法“<?=”是什么
【发布时间】:2011-11-14 14:48:45
【问题描述】:

阅读一些PHP代码,我无法理解:

&lt;?=

我了解php标签的使用:

&lt;?php&lt;?

我正在阅读的确切用法是:

&lt;?=$form-&gt;hidden('mode',$mode); ?&gt;

其中 $form 是一个新的对象实例化类,并“隐藏”了一个类方法。所有这些都被理解,但是当我在 ? 之间放置一个空格时and = of &lt;?= 我得到一个错误:

Parse error: syntax error, unexpected '=' in /home/...

我在 google 或 php.net 上找不到任何关于语法的内容。

任何帮助将不胜感激。

【问题讨论】:

标签: php tags


【解决方案1】:

这是echo 的快捷方式。像这样(expr 是任何表达式):

<?= expr ?>

在功能上等同于:

<?php echo expr; ?>

不建议使用此语法,因为它在某些服务器上未启用。 (如果有人使用共享主机,他们也可能无法重新启用它)

上面的 PHP 文档是here

【讨论】:

    【解决方案2】:

    &lt;?=&lt;?php echo 的简写。不再推荐使用它,显然是因为解析器存在歧义或与某些 PHP 版本不兼容,尽管我仍然在 Drupal 等大型项目中看到它。

    编辑:它们被称为“短标签”,关于是否应该使用它们的讨论可以在这里找到:Are PHP short tags acceptable to use?

    【讨论】:

    • 感谢您的链接。他们在其中讨论了 Zend 支持的 =。它有很多关于该主题的链接和想法,以及此处发布的 php.net 手动链接。谢谢大家。
    【解决方案3】:

    简而言之,“短开标签”简直就是地狱。如果您在 php.ini / httpd.conf / .htaccess 中打开了 short_open_tags 并且您尝试将 XML 标记放入您的文档中,就像这样...

    <?xml version="1.0" encoding="iso-8859-1"?>
    

    PHP 会认为你试图写一些 PHP,出错,然后死掉。你最终不得不这样做

    <?php echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
    

    【讨论】:

      【解决方案4】:

      它被称为short open tag。如果它在您的服务器上启用,那么您可以使用它。

      来自 PHP 手册:

      该指令还影响了 PHP 5.4.0 之前的简写 &lt;?=,它 与&lt;? echo 相同。使用此快捷方式需要 short_open_tag 要上。自 PHP 5.4.0 起,&lt;?= 始终可用。

      使用这些类型的标签可以让您收到与使用echo 相同的结果。下面的例子是等价的。

      示例:

      <?php echo $text; ?>
      <?= $text; ?>
      

      【讨论】:

        【解决方案5】:

        &lt;?=,当启用short_tags 时,是&lt;?php echo 的简写。

        这已覆盖right at the start of the PHP manual

        【讨论】:

          【解决方案6】:

          只是当您在 HTML 文件中时快速打印内容的简写。不推荐使用它,因为它已被弃用。

          【讨论】:

            【解决方案7】:

            【讨论】:

              【解决方案8】:

              这是一个短标签,并不适用于所有服务器。

              &lt;?=&lt;?php echo 相同

              &lt;?= 中放置一个空格会使短标签无效,这就是您收到错误的原因。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-07-31
                • 1970-01-01
                • 1970-01-01
                • 2011-09-18
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多