在PHP中'<= ='是什么意思?

在PHP中'<= ='是什么意思?

问题描述:

<?php 

$a=1; 

?> 
<?=$a;?> 

<?=是什么意思?在PHP中'<= ='是什么意思?

+0

备注:这在ASP.NET MVC视图中广泛使用。 – Omar 2010-01-07 14:26:42

+2

http://stackoverflow.com/questions/1963901/what-does-this-symbol-mean-in-php/1963912 – 2010-01-07 17:10:00

+6

请注意,';'是多余的;正如答案所示,这个短标签会根据[php文档](http://php.net/manual/en/language.basic-syntax.phpmode)扩展为一个带有分号的'echo'。 PHP)。 – 2015-10-05 01:25:02

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

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

+0

它在PHP 7中可用吗? – zachdyer 2018-02-27 20:33:21

这是这个的简写:

<?php echo $a; ?> 

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

+10

请注意,所有服务器都不支持下面答案中提到的短标签。他们需要php.ini有'short_open_tag = On' – 2010-01-07 13:52:41

<?=$a; ?> 

是一条捷径:

<?php echo $a; ?> 

<?= $a ?>相同<? echo $a; ?>,只是为了方便简写。

如果short_open_tag已启用,则这是<?php echo $a; ?>的快捷方式。编号:http://php.net/manual/en/ini.core.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; 
} 

List of Parser Tokenshere is what T_OPEN_TAG_WITH_ECHO links to

+0

令牌无法告诉我更多细节。 – user198729 2010-01-07 14:14:31

我希望它不会被弃用。尽管编写<? blah code ?>对于XHTML来说是相当不必要和易混淆的,但由于显而易见的原因,<?=并不是。不幸的是,我不使用它,因为short_open_tag似乎越来越被禁用。

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

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

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