<?php
$a=1;
?>
<?=$a;?>
<?=
到底意味着什么?
答案 0 :(得分:182)
这是<?php echo $a; ?>
的缩写。
无论php.ini
设置如何,它都默认启用since 5.4。
答案 1 :(得分:43)
答案 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 Tokens,here 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中删除。