¿Qué significa '<? =' En PHP?


Respuestas:


229

Es una abreviatura para <?php echo $a; ?>.

Está habilitado por defecto desde 5.4 independientemente de la php.iniconfiguración.


1
¿Está disponible en php 7?
zachdyer

44
Tenga en cuenta que no se requiere el punto y coma final. Pero si, por cualquier razón, necesita volver a las etiquetas clásicas, una simple búsqueda / reemplazo <?=de todo el proyecto no <?php echoserí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 ).
TwystO

47

Es una abreviatura para esto:

<?php echo $a; ?>

Se llaman etiquetas cortas; ver ejemplo # 2 en la documentación .


12
Tenga en cuenta que todos los servidores no admiten etiquetas cortas como se menciona en una respuesta a continuación. Requieren php.ini para tenershort_open_tag = On
Corey Ballou

17

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 .


El token no pudo decirme más detalles.
user198729


7

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.




3

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.