PHP中“<?=”是什么意思?
<?php $a=1; ?> <?=$a;?>
<?=
意味着什么?
这是<?php echo $a; ?>
的简写forms<?php echo $a; ?>
<?php echo $a; ?>
。
无论是否设置了php.ini
它都是默认启用的。
这是一个简写:
<?php echo $a; ?>
他们被称为短标签; 请参阅文档中的示例#2。
<?= $a ?>
与<? echo $a; ?>
相同 <? echo $a; ?>
只是为了方便速记。
因为它不会增加任何价值重复,这意味着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 ) )
您可以使用此代码自行testing:
$tokens = token_get_all('<?=$a;?>'); print_r($tokens); foreach($tokens as $token){ echo token_name((int) $token[0]), PHP_EOL; }
从parsing器标记列表中 , 这里是T_OPEN_TAG_WITH_ECHO链接到的内容 。
<?=$a; ?>
是一个捷径:
<?php echo $a; ?>
这是<?php echo $a; ?>
的快捷方式<?php echo $a; ?>
<?php echo $a; ?>
如果short_open_tag
被启用。 参考: http : //php.net/manual/en/ini.core.php
从PHP 5.4.0起,即使没有在php.ini中设置short_open_tag,也始终可用<?= ?>
。
此外,从PHP 7.0开始,ASP标记: <%, %>
和脚本标记<script language="php">
将从PHP中删除。
我希望它不会被弃用。 在写<? blah code ?>
<? blah code ?>
对于XHTML来说是相当不必要的和易混淆的, <?=
不是显而易见的原因。 不幸的是,我不使用它,因为short_open_tag似乎越来越被禁用。
更新:我现在再次使用<?=
,因为它默认情况下使用PHP 5.4.0启用。 见http://php.net/manual/en/language.basic-syntax.phptags.php