Что значит '


<?php

$a=1;

?>
<?=$a;?>

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

8 101

8 ответов:

это сокращение для <?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;
}

С список токенов парсера,вот что t_open_tag_with_echo ссылки на.

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

<?=$a; ?>

ярлык для:

<?php echo $a; ?>

это ярлык для <?php echo $a; ?> Если short_open_tags включены. Ref:http://php.net/manual/en/ini.core.php

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

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

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

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