Cosa significa "<? =" In PHP?


Risposte:


229

È una scorciatoia per <?php echo $a; ?> .

È abilitato per impostazione predefinita dalla 5.4 indipendentemente dalle php.iniimpostazioni.


1
È disponibile in php 7?
Zachdyer,

4
Si noti che il punto e virgola finale non è richiesto. Ma se, per qualsiasi motivo, dovessi tornare ai tag classici, una semplice ricerca / sostituzione <?=a livello di progetto <?php echonon 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 ).
TwystO

47

È una scorciatoia per questo:

<?php echo $a; ?>

Si chiamano tag brevi; vedi esempio n. 2 nella documentazione .


12
Si noti che tutti i server non supportano i tag brevi come indicato in una risposta di seguito. Richiedono php.ini per avereshort_open_tag = On
Corey Ballou

17

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 .


Il token non è stato in grado di dirmi ulteriori dettagli.
user198729


7

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.




3

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.