<?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