<?php
$a=1;
?>
<?=$a;?>
¿Qué <?=
significa exactamente?
;
es redundante; como las respuestas sugieren que esta etiqueta corta se expande a una echo
con un punto y coma agregado al final, según los documentos php .
<?php
$a=1;
?>
<?=$a;?>
¿Qué <?=
significa exactamente?
;
es redundante; como las respuestas sugieren que esta etiqueta corta se expande a una echo
con un punto y coma agregado al final, según los documentos php .
Respuestas:
Es una abreviatura para <?php echo $a; ?>
.
Está habilitado por defecto desde 5.4 independientemente de la php.ini
configuración.
<?=
de todo el proyecto no <?php echo
sería suficiente. De todos modos, a partir de hoy espero que no tengan ningún servidor de producción que ejecute PHP <5.6 ya que estas versiones ya no se mantienen ( versiones compatibles con PHP ).
Es una abreviatura para esto:
<?php echo $a; ?>
Se llaman etiquetas cortas; ver ejemplo # 2 en la documentación .
short_open_tag = On
Como no agregaría ningún valor repetir lo que significa echo
, pensé que le gustaría ver qué significa exactamente en 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
)
)
Puede usar este código para probarlo usted mismo:
$tokens = token_get_all('<?=$a;?>');
print_r($tokens);
foreach($tokens as $token){
echo token_name((int) $token[0]), PHP_EOL;
}
De la Lista de tokens de analizador , esto es a lo que se vincula T_OPEN_TAG_WITH_ECHO .
<?= $a ?>
es lo mismo que <? echo $a; ?>
, solo taquigrafía para mayor comodidad.
A partir de PHP 5.4.0,
<?= ?>
siempre están disponibles, incluso sin el short_open_tag establecido en php.ini.
Además, a partir de PHP 7.0, las etiquetas ASP:
<%, %>
y la etiqueta de script
<script language="php">
se eliminan de PHP.
Es un acceso directo para <?php echo $a; ?>
si los short_open_tag
s están habilitados. Ref: http://php.net/manual/en/ini.core.php
Espero que no quede en desuso. Si bien la escritura <? blah code ?>
es bastante innecesaria y confusa con XHTML, <?=
no lo es, por razones obvias. Lamentablemente no lo uso, porque short_open_tag parece estar deshabilitado cada vez más.
Actualización: lo uso de <?=
nuevo ahora, porque está habilitado de forma predeterminada con PHP 5.4.0. Ver http://php.net/manual/en/language.basic-syntax.phptags.php