Was bedeutet '<? =' In PHP?


Antworten:


229

Es ist eine Abkürzung für <?php echo $a; ?>.

Es ist standardmäßig aktiviert seit 5.4 unabhängig von den php.iniEinstellungen.


1
Ist es in PHP 7 verfügbar?
Zachdyer

4
Beachten Sie, dass das letzte Semikolon nicht erforderlich ist. Aber wenn aus irgendeinem Grunde, müssen Sie klassische Tags zurück zu gehen, eine einfache Projekt weite Suchen / Ersetzen <?=für <?php echowould'nt genug sein. Ab heute hoffe ich, dass ihr keine Produktionsserver mit PHP <5.6 habt, da diese Versionen nicht mehr gepflegt werden ( PHP Supported Versions ).
TwystO

47

Es ist eine Abkürzung dafür:

<?php echo $a; ?>

Sie werden kurze Tags genannt; siehe Beispiel 2 in der Dokumentation .


12
Bitte beachten Sie, dass nicht alle Server kurze Tags unterstützen, wie in der folgenden Antwort angegeben. Sie benötigen php.ini zu habenshort_open_tag = On
Corey Ballou

17

Da es keinen Mehrwert bringt, zu wiederholen, was es bedeutet echo, dachte ich, Sie möchten sehen, was genau in PHP bedeutet:

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
        )
)

Sie können diesen Code verwenden, um ihn selbst zu testen:

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

Aus der Liste der Parser Tokens , hier ist das, was T_OPEN_TAG_WITH_ECHO Links zu .


Das Token konnte mir keine weiteren Details mitteilen.
user198729


7

Ab PHP 5.4.0, <?= ?> sind sie auch ohne den in php.ini festgelegten short_open_tag immer verfügbar.

Ab PHP 7.0 werden außerdem die ASP-Tags: <%, %> und das Skript-Tag <script language="php">aus PHP entfernt.




3

Ich hoffe es wird nicht veraltet. Während das Schreiben <? blah code ?>mit XHTML ziemlich unnötig und verwirrend ist,<?= ist dies aus offensichtlichen Gründen nicht der . Leider benutze ich es nicht, weil short_open_tag immer mehr deaktiviert zu sein scheint.

Update: Ich verwende <?=es jetzt wieder, da es standardmäßig mit PHP 5.4.0 aktiviert ist. Siehe http://php.net/manual/en/language.basic-syntax.phptags.php

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.