Que signifie «<? =» En PHP?


Réponses:


229

C'est un raccourci pour <?php echo $a; ?>.

Il est activé par défaut depuis la version 5.4 quels que soient les php.iniparamètres.


1
Est-il disponible en php 7?
zachdyer

4
Notez que le point-virgule final n'est pas obligatoire. Mais si, pour une raison quelconque, vous devez revenir aux balises classiques, une simple recherche / remplacement <?=à l' <?php echoéchelle du projet ne suffirait pas. Quoi qu'il en soit, à partir d'aujourd'hui, j'espère que vous n'avez pas de serveurs de production exécutant PHP <5.6 car ces versions ne sont plus maintenues ( versions supportées par PHP ).
TwystO

47

C'est un raccourci pour ceci:

<?php echo $a; ?>

On les appelle des balises courtes; voir l'exemple n ° 2 dans la documentation .


12
Veuillez noter que tous les serveurs ne prennent pas en charge les balises courtes comme mentionné dans une réponse ci-dessous. Ils nécessitent php.ini d'avoirshort_open_tag = On
Corey Ballou

17

Comme cela n'ajouterait aucune valeur à répéter ce que cela signifie echo, j'ai pensé que vous aimeriez voir ce que signifie exactement 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
        )
)

Vous pouvez utiliser ce code pour le tester vous-même:

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

À partir de la liste des jetons d'analyseur , voici les liens vers T_OPEN_TAG_WITH_ECHO .


Le jeton ne m'a pas donné plus de détails.
user198729


7

Depuis PHP 5.4.0, <?= ?> sont toujours disponibles même sans le short_open_tag défini dans php.ini.

De plus, à partir de PHP 7.0, les balises ASP: <%, %> et la balise script <script language="php"> sont supprimées de PHP.




3

J'espère qu'il n'est pas obsolète. Bien que l'écriture <? blah code ?>soit assez inutile et confuse avec XHTML, ce <?=n'est pas le cas, pour des raisons évidentes. Malheureusement, je ne l'utilise pas, car short_open_tag semble être de plus en plus désactivé.

Mise à jour: J'utilise à <?=nouveau maintenant, car il est activé par défaut avec PHP 5.4.0. Voir http://php.net/manual/en/language.basic-syntax.phptags.php

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.