Co oznacza „<? =” W PHP?


Odpowiedzi:


229

To skrót od <?php echo $a; ?>.

Jest domyślnie włączony od wersji 5.4, niezależnie od php.iniustawień.


1
Czy jest dostępny w php 7?
zachdyer

4
Pamiętaj, że ostatni średnik nie jest wymagany. Ale jeśli z jakiegoś powodu musisz wrócić do klasycznych tagów, proste wyszukiwanie / zamiana <?=dla całego projektu <?php echonie wystarczy. W każdym razie mam nadzieję, że na dzień dzisiejszy nie macie żadnych serwerów produkcyjnych z PHP <5.6, ponieważ te wersje nie są już obsługiwane (wersje obsługiwane przez PHP ).
TwystO

47

To jest skrót na to:

<?php echo $a; ?>

Nazywa się je krótkimi tagami; patrz przykład nr 2 w dokumentacji .


12
Należy pamiętać, że wszystkie serwery nie obsługują krótkich tagów, jak wspomniano w odpowiedzi poniżej. Wymagają posiadania php.inishort_open_tag = On
Corey Ballou

17

Ponieważ nie dodałoby to żadnej wartości do powtórzenia, że ​​to znaczy echo, pomyślałem, że chciałbyś zobaczyć, co dokładnie oznacza w 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
        )
)

Możesz użyć tego kodu do samodzielnego przetestowania:

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

Z listy tokenów parsera , oto linki do T_OPEN_TAG_WITH_ECHO .


Token nie podał mi więcej szczegółów.
user198729


7

Od PHP 5.4.0 <?= ?> są zawsze dostępne nawet bez short_open_tag ustawionego w php.ini.

Ponadto od wersji PHP 7.0 tagi ASP: <%, %> i tag skryptu <script language="php"> są usuwane z PHP.




3

Mam nadzieję, że nie zostanie wycofany. Chociaż pisanie <? blah code ?>jest dość niepotrzebne i mylące z XHTML <?=, z oczywistych powodów tak nie jest. Niestety nie używam go, ponieważ short_open_tag wydaje się być coraz bardziej wyłączony.

Aktualizacja: Teraz używam <?=ponownie, ponieważ jest domyślnie włączona w PHP 5.4.0. Zobacz http://php.net/manual/en/language.basic-syntax.phptags.php

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.