Что означает «<? =» В PHP? - PullRequest
       21

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

126 голосов
/ 07 января 2010
<?php

$a=1;

?>
<?=$a;?>

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

Ответы [ 8 ]

185 голосов
/ 07 января 2010

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

По умолчанию включено , начиная с 5,4 независимо от настроек php.ini.

43 голосов
/ 07 января 2010

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

<?php echo $a; ?>

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

14 голосов
/ 07 января 2010

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

8 голосов
/ 07 января 2010

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

6 голосов
/ 07 января 2010
<?=$a; ?>

является сокращением для:

<?php echo $a; ?>
4 голосов
/ 26 июня 2017

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

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

4 голосов
/ 07 января 2010

Это ярлык для <?php echo $a; ?>, если включены short_open_tag с. Ссылка: http://php.net/manual/en/ini.core.php

3 голосов
/ 19 января 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...