Что означает "<? =" В PHP?

<?php

$a=1;

?>
<?=$a;?>

Что означает <?=?

Ответ 1

Это сокращение для <?php echo $a; ?>.

Он включен по умолчанию начиная с 5.4 независимо от настроек php.ini.

Ответ 2

Это сокращение для этого:

<?php echo $a; ?>

Они называются короткими тегами; см. пример № 2 в документации.

Ответ 3

Так как он не добавит никакого значения, чтобы повторить, что это означает 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 ссылки на.

Ответ 4

<?= $a ?> совпадает с <? echo $a; ?>, просто сокращается для удобства.

Ответ 5

<?=$a; ?>

является ярлыком для:

<?php echo $a; ?>

Ответ 7

Надеюсь, он не устареет. В то время как запись <? blah code ?> является довольно ненужной и путаной с XHTML, <?= по очевидным причинам не является. К сожалению, я не использую его, потому что short_open_tag, кажется, отключается все больше и больше.

Обновление: Я снова использую <?=, потому что он включен по умолчанию с помощью PHP 5.4.0. См. http://php.net/manual/en/language.basic-syntax.phptags.php

Ответ 8

Начиная с PHP 5.4.0,   <?= ?> всегда доступны даже без short_open_tag, установленного в php.ini.

Кроме того, начиная с PHP 7.0, теги ASP:   <%, %> и тег script  <script language="php"> удаляются из PHP.