<?php
$a=1;
?>
<?=$a;?>
<?=
はどういう意味ですか?
<?php echo $a; ?>
の省略形です。
デフォルトで有効になっています 5.4以降php.ini
設定に関係なく。
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;
}
<?= $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; ?>
sが有効な場合、short_open_tag
のショートカットになります。参照: http://php.net/manual/en/ini.core.php
廃止されないことを願っています。 <? blah code ?>
の記述はかなり不要であり、XHTMLと混同されやすくなりますが、<?=
は明らかな理由でそうではありません。残念ながら、私はそれを使用しません。short_open_tagがますます無効になるようだからです。
更新:PHP 5.4.0でデフォルトで有効になっているので、<?=
を再び使用します。 http://php.net/manual/en/language.basic-syntax.phptags.php を参照してください