<?php
$a=1;
?>
<?=$a;?>
Co to <?=
dokładnie znaczy?
;
jest zbędny; jak sugerują odpowiedzi, ten krótki tag rozszerza się do znaku echo
ze średnikiem dodanym na końcu, zgodnie z dokumentami php .
<?php
$a=1;
?>
<?=$a;?>
Co to <?=
dokładnie znaczy?
;
jest zbędny; jak sugerują odpowiedzi, ten krótki tag rozszerza się do znaku echo
ze średnikiem dodanym na końcu, zgodnie z dokumentami php .
Odpowiedzi:
To skrót od <?php echo $a; ?>
.
Jest domyślnie włączony od wersji 5.4, niezależnie od php.ini
ustawień.
<?=
dla całego projektu <?php echo
nie 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 ).
To jest skrót na to:
<?php echo $a; ?>
Nazywa się je krótkimi tagami; patrz przykład nr 2 w dokumentacji .
short_open_tag = On
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 .
<?= $a ?>
to to samo co <? echo $a; ?>
, tylko skrót dla wygody.
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.
<?=$a; ?>
to skrót do:
<?php echo $a; ?>
Jest to skrót, <?php echo $a; ?>
jeśli short_open_tag
s są włączone. Ref: http://php.net/manual/en/ini.core.php
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