What does '<?=' mean in PHP?

2018-12-31 22:27发布

问题:

<?php

$a=1;

?>
<?=$a;?>

What does <?= mean exactly?

回答1:

It\'s a shorthand for <?php echo $a; ?>.

It\'s enabled by default since 5.4 regardless of php.ini settings.



回答2:

It\'s a shorthand for this:

<?php echo $a; ?>

They\'re called short tags; see example #2 in the documentation.



回答3:

Since it wouldn\'t add any value to repeat that it means echo, I thought you\'d like to see what means in PHP exactly:

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

You can use this code to test it yourself:

$tokens = token_get_all(\'<?=$a;?>\');
print_r($tokens);
foreach($tokens as $token){
    echo token_name((int) $token[0]), PHP_EOL;
}

From the List of Parser Tokens, here is what T_OPEN_TAG_WITH_ECHO links to.



回答4:

<?= $a ?> is the same as <? echo $a; ?>, just shorthand for convenience.



回答5:

<?=$a; ?>

is a shortcut for:

<?php echo $a; ?>


回答6:

It\'s a shortcut for <?php echo $a; ?> if short_open_tags are enabled. Ref: http://php.net/manual/en/ini.core.php



回答7:

As of PHP 5.4.0, <?= ?> are always available even without the short_open_tag set in php.ini.

Furthermore, as of PHP 7.0, The ASP tags: <%, %> and the script tag <script language=\"php\"> are removed from PHP.



回答8:

I hope it doesn\'t get deprecated. While writing <? blah code ?> is fairly unnecessary and confusable with XHTML, <?= isn\'t, for obvious reasons. Unfortunately I don\'t use it, because short_open_tag seems to be disabled more and more.

Update: I do use <?= again now, because it is enabled by default with PHP 5.4.0. See http://php.net/manual/en/language.basic-syntax.phptags.php



标签: php syntax