<?php $a=1; ?> <?=$a;?>
Что означает <?= Означает?
Это сокращение от <?php echo $a; ?> <?php echo $a; ?> .
Он включен по умолчанию с 5.4 независимо от настроек php.ini .
Это сокращение для этого:
<?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; }
Из списка токенов Parser , вот к чему относится T_OPEN_TAG_WITH_ECHO .
<?= $a ?> совпадает с <? echo $a; ?> <? echo $a; ?> <? echo $a; ?> , просто сокращенное для удобства.
<?=$a; ?>
это ярлык для:
<?php echo $a; ?>
Это ярлык для <?php echo $a; ?> <?php echo $a; ?> если short_open_tag s включены. Ссылка: http://php.net/manual/en/ini.core.php
Начиная с PHP 5.4.0, <?= ?> Всегда доступны даже без short_open_tag, установленного в php.ini.
Кроме того, с PHP 7.0 теги ASP: <%, %> и тег <script language="php"> удаляются из PHP.
Надеюсь, он не устареет. При написании <? blah code ?> <? blah code ?> довольно бесполезен и путается с XHTML, <?= нет, по понятным причинам. К сожалению, я не использую его, потому что short_open_tag, кажется, все больше отключается.
Обновление: теперь я использую <?= Снова, потому что он включен по умолчанию с помощью PHP 5.4.0. См. http://php.net/manual/en/language.basic-syntax.phptags.php