繁体   English   中英

什么 '

[英]What does '<?=' mean in PHP?

<?php

$a=1;

?>
<?=$a;?>

<?=究竟是什么意思?

它是<?php echo $a; ?>的简写<?php echo $a; ?> <?php echo $a; ?> .

无论php.ini设置如何,它自 5.4 起默认启用。

这是一个简写:

<?php echo $a; ?>

它们被称为短标签; 请参阅 文档中的示例 #2。

因为它不会添加任何值来重复它意味着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;
}

解析器令牌列表中这是 T_OPEN_TAG_WITH_ECHO 链接到的内容

<?= $a ?><? echo $a; ?> <? echo $a; ?> <? echo $a; ?> ,只是为了方便起见。

<?=$a; ?>

是一个快捷方式:

<?php echo $a; ?>

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

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

这是<?php echo $a; ?>的快捷方式<?php echo $a; ?> <?php echo $a; ?>如果启用了short_open_tag 参考: http : //php.net/manual/en/ini.core.php

我希望它不会被弃用。 在写<? blah code ?> <? blah code ?>与 XHTML 相当不必要且容易混淆, <?=不是,原因很明显。 不幸的是我不使用它,因为 short_open_tag 似乎越来越被禁用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM