<?php
$a=1;
?>
<?=$a;?>
Cosa <?=
significa esattamente?
;
è ridondante; come suggeriscono le risposte questo short-tag si espande in un echo
punto e virgola aggiunto alla fine, come per i documenti php .
<?php
$a=1;
?>
<?=$a;?>
Cosa <?=
significa esattamente?
;
è ridondante; come suggeriscono le risposte questo short-tag si espande in un echo
punto e virgola aggiunto alla fine, come per i documenti php .
Risposte:
È una scorciatoia per <?php echo $a; ?>
.
È abilitato per impostazione predefinita dalla 5.4 indipendentemente dalle php.ini
impostazioni.
<?=
a livello di progetto <?php echo
non sarebbe sufficiente. Ad ogni modo, ad oggi spero che non abbiate server di produzione con PHP <5.6 in quanto questa versione non è più mantenuta ( versioni supportate da PHP ).
È una scorciatoia per questo:
<?php echo $a; ?>
Si chiamano tag brevi; vedi esempio n. 2 nella documentazione .
short_open_tag = On
Dal momento che non aggiungerebbe alcun valore per ripetere che significa echo
, ho pensato che ti piacerebbe vedere esattamente cosa significa in 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
)
)
Puoi usare questo codice per testarlo tu stesso:
$tokens = token_get_all('<?=$a;?>');
print_r($tokens);
foreach($tokens as $token){
echo token_name((int) $token[0]), PHP_EOL;
}
Dall'elenco dei token parser , ecco a cosa si collega T_OPEN_TAG_WITH_ECHO .
<?= $a ?>
è lo stesso <? echo $a; ?>
, solo stenografia per comodità.
A partire da PHP 5.4.0,
<?= ?>
sono sempre disponibili anche senza il short_open_tag impostato in php.ini.
Inoltre, a partire da PHP 7.0, i tag ASP:
<%, %>
e il tag script
<script language="php">
vengono rimossi da PHP.
È una scorciatoia per <?php echo $a; ?>
se short_open_tag
sono abilitati. Rif: http://php.net/manual/en/ini.core.php
Spero che non venga deprecato. Mentre la scrittura <? blah code ?>
è abbastanza inutile e confusa con XHTML, <?=
non lo è, per ovvie ragioni. Purtroppo non lo uso, perché short_open_tag sembra essere disabilitato sempre di più.
Aggiornamento: lo uso <?=
ancora adesso, perché è abilitato di default con PHP 5.4.0. Vedi http://php.net/manual/en/language.basic-syntax.phptags.php