【问题标题】:What does '<?=' mean in PHP?'<?=' 在 PHP 中是什么意思?
【发布时间】:2011-01-02 11:44:37
【问题描述】:
<?php

$a=1;

?>
<?=$a;?>

&lt;?= 到底是什么意思?

【问题讨论】:

标签: php syntax


【解决方案1】:

这是&lt;?php echo $a; ?&gt; 的简写。

无论php.ini 设置如何,它默认启用since 5.4.0

【讨论】:

  • 它在 php 7 中可用吗?
  • 请注意,最后的分号不是必需的。但是,如果出于某种原因,您需要回到经典标签,那么简单的项目范围内搜索/替换 &lt;?=&lt;?php echo 是不够的。无论如何,截至今天,我希望你们没有任何运行 PHP PHP Supported Versions)。
【解决方案2】:

这是一个简写:

<?php echo $a; ?>

它们被称为短标签;请参阅documentation 中的示例 #1。

【讨论】:

    【解决方案3】:

    因为它不会增加任何价值来重复它意味着echo,我想你想看看在 PHP 中究竟是什么意思:

    Array
    (
        [0] => Array
            (
                [0] => 368 // T_OPEN_TAG_WITH_ECHO
                [1] => <?=
                [2] => 1
            )
        [1] => Array
            (
                [0] => 309 // T_VARIABLE
                [1] => $a
                [2] => 1
            )
        [2] => ; // UNKNOWN (because it is optional (ignored))
        [3] => Array
            (
                [0] => 369 // T_CLOSE_TAG
                [1] => ?>
                [2] => 1
            )
    )
    

    您可以使用此代码自行测试:

    $tokens = token_get_all('<?=$a;?>');
    print_r($tokens);
    foreach($tokens as $token){
        echo token_name((int) $token[0]), PHP_EOL;
    }
    

    来自List of Parser Tokenshere is what T_OPEN_TAG_WITH_ECHO links to

    【讨论】:

    • 令牌未能告诉我更多细节。
    【解决方案4】:

    &lt;?= $a ?&gt;&lt;? echo $a; ?&gt; 相同,只是为了方便起见。

    【讨论】:

      【解决方案5】:
      <?=$a; ?>
      

      是一个快捷方式:

      <?php echo $a; ?>
      

      【讨论】:

        【解决方案6】:

        从 PHP 5.4.0 开始, &lt;?= ?&gt; 即使没有在 php.ini 中设置 short_open_tag,也始终可用。

        此外,从 PHP 7.0 开始,ASP 标签: &lt;%, %&gt; 和脚本标签 &lt;script language="php"&gt; 已从 PHP 中删除。

        【讨论】:

          【解决方案7】:

          如果启用了short_open_tags,它是&lt;?php echo $a; ?&gt; 的快捷方式。参考:http://php.net/manual/en/ini.core.php

          【讨论】:

            【解决方案8】:

            我希望它不会被弃用。虽然编写&lt;? blah code ?&gt; 是相当不必要的并且与XHTML 混淆,但&lt;?= 不是,原因很明显。不幸的是我没有使用它,因为 short_open_tag 似乎越来越被禁用了。

            更新:我现在再次使用&lt;?=,因为它在 PHP 5.4.0 中默认启用。 见http://php.net/manual/en/language.basic-syntax.phptags.php

            【讨论】:

              猜你喜欢
              • 2011-01-24
              • 1970-01-01
              • 2011-08-12
              • 2017-06-11
              • 2018-03-05
              • 2023-03-27
              • 2010-11-17
              • 2011-06-13
              • 2016-08-17
              相关资源
              最近更新 更多