回答:
これはの省略形です<?php echo $a; ?>。
設定に関係なく、5.4以降ではデフォルトで有効になっていphp.iniます。
<?=、<?php echoなんらかの理由でクラシックタグに戻る必要がある場合は、プロジェクト全体の単純な検索/置換では十分ではありません。とにかく、今日のバージョンではPHP 5.6未満を実行している運用サーバーがないことを願っています。このバージョンはもうメンテナンスされていないためです(PHPでサポートされているバージョン)。
short_open_tag = On
それが意味することを繰り返すために値を追加することはないので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; ?>はと同じですが、便宜上省略形です。
これは、が有効にされている<?php echo $a; ?>場合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を参照してください