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