<?php

$a=1;

?>
<?=$a;?>

<?到底是什么意思?


当前回答

它是这个的简写:

<?php echo $a; ?>

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

其他回答

它是这个的简写:

<?php echo $a; ?>

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

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

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

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

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

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

更新:我使用<?=,因为它在PHP 5.4.0中默认启用。 参见http://php.net/manual/en/language.basic-syntax.phptags.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链接到这里。