Wat betekent ‘<?=’ in PHP?

Wat betekent <?=precies?


Antwoord 1, autoriteit 100%

Het is een afkorting voor <?php echo $a; ?>.

Het is standaard ingeschakeld sinds 5.4ongeacht php.iniinstellingen.


Antwoord 2, autoriteit 18%

Het is een afkorting hiervan:

<?php echo $a; ?>

Ze worden korte tags genoemd; zie voorbeeld #2 in de documentatie.


Antwoord 3, autoriteit 8%

Omdat het geen enkele waarde zou toevoegen om te herhalen dat het echobetekent, dacht ik dat je graag zou willen zien wat precies in PHP betekent:

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

Je kunt deze code gebruiken om hem zelf te testen:

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

van de lijst van parser tokens , Hier is wat t_open_tag_with_echo links naar .


4, Autoriteit 4%

<?= $a ?>is hetzelfde als <? echo $a; ?>, gewoon steno voor gemak.


5, Autoriteit 3%

<?=$a; ?>

is een snelkoppeling voor:

<?php echo $a; ?>

6, Autoriteit 3%

Vanaf PHP 5.4.0,
<?= ?>
zijn altijd beschikbaar, zelfs zonder de Short_Open_Tag in Php.ini.

Bovendien, vanaf PHP 7.0, de ASP-tags:
<%, %>
en de script-tag
<script language="php">
worden verwijderd uit PHP.


7

Ik hoop dat het niet wordt afgeschreven. Tijdens het schrijven <? blah code ?>is redelijk onnodig en verwarrend met xhtml, <?=is niet, om voor de hand liggende redenen. Helaas gebruik ik het niet, omdat Short_Open_Tag steeds meer is uitgeschakeld.

Update: Ik gebruik <?=NU NU, omdat het standaard is ingeschakeld met PHP 5.4.0.
Zie http://php.net/Manual/en/language.basic -syntax.phptags.php

Other episodes