什么'<! - ?='在PHP中意味着什么? - >

时间:2010-01-07 13:08:43

标签: php syntax

<?php

$a=1;

?>
<?=$a;?>

<?=到底意味着什么?

8 个答案:

答案 0 :(得分:182)

这是<?php echo $a; ?>的缩写。

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

答案 1 :(得分:43)

这是一个简写:

<?php echo $a; ?>

他们被称为短标签;参见documentation中的示例#2。

答案 2 :(得分:14)

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

答案 3 :(得分:8)

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

答案 4 :(得分:6)

<?=$a; ?>

是:

的快捷方式
<?php echo $a; ?>

答案 5 :(得分:4)

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

答案 6 :(得分:3)

我希望它不会被弃用。虽然写<? blah code ?>对于XHTML来说是非常不必要和可混淆的,但<?=并非如此,原因显而易见。不幸的是我不使用它,因为short_open_tag似乎被越来越多地禁用了。

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

答案 7 :(得分:3)

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

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