簡體   English   中英

什么 '

[英]What does '<?=' mean in PHP?

<?php

$a=1;

?>
<?=$a;?>

<?=究竟是什么意思?

它是<?php echo $a; ?>的簡寫<?php echo $a; ?> <?php echo $a; ?> .

無論php.ini設置如何,它自 5.4 起默認啟用。

這是一個簡寫:

<?php echo $a; ?>

它們被稱為短標簽; 請參閱 文檔中的示例 #2。

因為它不會添加任何值來重復它意味着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;
}

解析器令牌列表中這是 T_OPEN_TAG_WITH_ECHO 鏈接到的內容

<?= $a ?><? echo $a; ?> <? echo $a; ?> <? echo $a; ?> ,只是為了方便起見。

<?=$a; ?>

是一個快捷方式:

<?php echo $a; ?>

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

此外,從 PHP 7.0 開始,ASP 標簽: <%, %>和腳本標簽<script language="php">已從 PHP 中刪除。

這是<?php echo $a; ?>的快捷方式<?php echo $a; ?> <?php echo $a; ?>如果啟用了short_open_tag 參考: http : //php.net/manual/en/ini.core.php

我希望它不會被棄用。 在寫<? blah code ?> <? blah code ?>與 XHTML 相當不必要且容易混淆, <?=不是,原因很明顯。 不幸的是我不使用它,因為 short_open_tag 似乎越來越被禁用。

更新:我現在再次使用<?= ,因為它在 PHP 5.4.0 中默認啟用。 http://php.net/manual/en/language.basic-syntax.phptags.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM