<?php

$a=1;

?>
<?=$a;?>

<?到底是什么意思?


当前回答

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

此外,从PHP 7.0开始,ASP标记: < %, % > 还有脚本标签 < = >“php脚本语言 从PHP中删除。

其他回答

因为它不会添加任何值来重复它意味着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链接到这里。

它是这个的简写:

<?php echo $a; ?>

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

<?= $a ?>与<?echo $一个;>,只是方便的简写。

它是<?PHP返回$a;?如果启用short_open_tags,则为>。裁判:http://php.net/manual/en/ini.core.php

它是<?PHP返回$a;? >。

自5.4.0以来,无论php.ini设置如何,它都默认启用。