2010-01-07 133 views
72
<?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

回答

107

這是<?php echo $a; ?>的簡寫。

無論php.ini設置如何,默認啓用since 5.4

+0

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

31

這是這個的簡寫:

<?php echo $a; ?> 

他們被稱爲短標籤;請參閱documentation中的示例#2。

+10

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

5
<?=$a; ?> 

是一條捷徑:

<?php echo $a; ?> 
7

<?= $a ?>相同<? echo $a; ?>,只是爲了方便簡寫。

8

因爲它不會增加任何價值重複這意味着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

1

我希望它不會被棄用。儘管編寫<? blah code ?>對於XHTML來說是相當不必要和易混淆的,但由於顯而易見的原因,<?=並不是。不幸的是,我不使用它,因爲short_open_tag似乎越來越被禁用。

更新:我現在再次使用<?=,因爲它默認情況下啓用了PHP 5.4.0。 見http://php.net/manual/en/language.basic-syntax.phptags.php

1

在PHP 5.4.0中, <?= ?> 始終可用,即使沒有在php.ini中設置short_open_tag的值爲。

此外,作爲PHP 7.0,ASP的標籤: <%, %> 和腳本標籤 <script language="php"> 從PHP中刪除。