Liste der Parsertoken

Verschiedene Teile der Sprache PHP werden intern durch Token dargestellt. Ein Codeschnipsel, der eine ungültige Folge von Token enthält, kann zu Fehlern wie dem folgenden führen: Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10.", wobei token == intern durch T_IS_EQUAL dargestellt wird.

In der folgenden Tabelle sind alle Token aufgelistet. Sie sind auch als PHP-Konstanten verfügbar.

Hinweis: Verwendung der T_* Konstanten

Der Wert von T_*-Konstanten wird basierend auf der zugrundeliegenden Parser-Infrastruktur von PHP automatisch erzeugt. Das bedeutet, dass sich der konkrete Wert eines Tokens zwischen zwei PHP-Versionen ändern kann. Damit eine gewisse Kompatibilität über mehrere PHP-Versionen gewährleistet ist, sollte sich Code daher niemals direkt auf die Original-T_*-Werte verlassen, die einer PHP-Version X.Y.Z entnommen wurden.

Um T_*-Konstanten über mehrere PHP-Versionen hinweg zu verwenden, können undefinierte Konstanten vom Benutzer mit einer geeigneten Strategie definiert werden (unter Verwendung großer Zahlen wie 10000), die sowohl mit den PHP-Versionen als auch mit den T_*-Werten funktioniert.

<?php
// Vor PHP 7.4.0 ist T_FN nicht definiert.
defined('T_FN') || define('T_FN', 10001);

Token
Token Syntax Referenz
T_ABSTRACT abstract Klassenabstraktion
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & Type declarations (verfügbar seit PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & Type declarations (verfügbar seit PHP 8.1.0)
T_AND_EQUAL &= Zuweisungsoperatoren
T_ARRAY array() array(), Arraysyntax
T_ARRAY_CAST (array) Typumwandlung
T_AS as foreach
T_ATTRIBUTE #[ Attribute (verfügbar seit PHP 8.0.0)
T_BAD_CHARACTER   Alle Zeichen unterhalb von ASCII 32 mit Ausnahme von \t (0x09), \n (0x0a) und \r (0x0d) (verfügbar seit PHP 7.4.0)
T_BOOLEAN_AND && Logische Operatoren
T_BOOLEAN_OR || Logische Operatoren
T_BOOL_CAST (bool) or (boolean) Typumwandlung
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Exceptions (Ausnahmen)
T_CLASS class Klassen und Objekte
T_CLASS_C __CLASS__ Magische Konstanten
T_CLONE clone Klassen und Objekte
T_CLOSE_TAG ?> oder %> Den HTML-Bereich der Datei verlassen
T_COALESCE ?? Vergleichsoperatoren
T_COALESCE_EQUAL ??= Zuweisungsoperatoren (verfügbar seit PHP 7.4.0)
T_COMMENT // oder #, und /* */ Kommentare
T_CONCAT_EQUAL .= Zuweisungsoperatoren
T_CONST const Klassenkonstanten
T_CONSTANT_ENCAPSED_STRING "foo" oder 'bar' Stringsyntax
T_CONTINUE continue continue
T_CURLY_OPEN {$ komplexe Variablen-Interpolationssyntax
T_DEC -- Inkrement- bzw. Dekrementoperatoren
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ Magische Konstanten
T_DIV_EQUAL /= Zuweisungsoperatoren
T_DNUMBER 0.12, etc Gleitkommawerte
T_DO do do..while
T_DOC_COMMENT /** */ Kommentare im PHPDoc-Stil
T_DOLLAR_OPEN_CURLY_BRACES ${ komplexe Variablen-Interpolationssyntax
T_DOUBLE_ARROW => Arraysyntax
T_DOUBLE_CAST (real), (double) or (float) Typumwandlung
T_DOUBLE_COLON :: Siehe T_PAAMAYIM_NEKUDOTAYIM weiter unten
T_ECHO echo echo
T_ELLIPSIS ... Funktionsargumente
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" Konstanter Teil einer Zeichenkette mit Variablen
T_ENDDECLARE enddeclare declare, Alternative Syntax
T_ENDFOR endfor for, Alternative Syntax
T_ENDFOREACH endforeach foreach, Alternative Syntax
T_ENDIF endif if, Alternative Syntax
T_ENDSWITCH endswitch switch, Alternative Syntax
T_ENDWHILE endwhile while, Alternative Syntax
T_ENUM enum Enumerations (verfügbar seit PHP 8.1.0)
T_END_HEREDOC   Heredoc-Syntax
T_EVAL eval() eval()
T_EXIT exit oder die exit(), die()
T_EXTENDS extends extends, Klassen und Objekte
T_FILE __FILE__ Magische Konstanten
T_FINAL final Final-Schlüsselwort
T_FINALLY finally Exceptions (Ausnahmen)
T_FN fn Pfeilfunktionen (verfügbar seit PHP 7.4.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function Funktionen
T_FUNC_C __FUNCTION__ Magische Konstanten
T_GLOBAL global Geltungsbereich von Variablen
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Objekt-Interfaces (Schnittstellen)
T_INC ++ Inkrement- bzw. Dekrementoperatoren
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML   Text außerhalb von PHP
T_INSTANCEOF instanceof Typoperatoren
T_INSTEADOF insteadof Traits
T_INTERFACE interface Objekt-Interfaces (Schnittstellen)
T_INT_CAST (int) oder (integer) Typumwandlung
T_ISSET isset() isset()
T_IS_EQUAL == Vergleichsoperatoren
T_IS_GREATER_OR_EQUAL >= Vergleichsoperatoren
T_IS_IDENTICAL === Vergleichsoperatoren
T_IS_NOT_EQUAL != or <> Vergleichsoperatoren
T_IS_NOT_IDENTICAL !== Vergleichsoperatoren
T_IS_SMALLER_OR_EQUAL <= Vergleichsoperatoren
T_LINE __LINE__ Magische Konstanten
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac, etc Integerwerte
T_LOGICAL_AND and Logische Operatoren
T_LOGICAL_OR or Logische Operatoren
T_LOGICAL_XOR xor Logische Operatoren
T_MATCH match match (verfügbar seit PHP 8.0.0)
T_METHOD_C __METHOD__ Magische Konstanten
T_MINUS_EQUAL -= Zuweisungsoperatoren
T_MOD_EQUAL %= Zuweisungsoperatoren
T_MUL_EQUAL *= Zuweisungsoperatoren
T_NAMESPACE namespace Namensräume
T_NAME_FULLY_QUALIFIED \App\Namespace Namensräume (verfügbar seit PHP 8.0.0)
T_NAME_QUALIFIED App\Namespace namespaces (verfügbar seit PHP 8.0.0)
T_NAME_RELATIVE namespace\Namespace namespaces (verfügbar seit PHP 8.0.0)
T_NEW new Klassen und Objekte
T_NS_C __NAMESPACE__ Namensräume
T_NS_SEPARATOR \ Namensräume
T_NUM_STRING "$a[0]" Numerischer Array-Index innerhalb einer Zeichenkette
T_OBJECT_CAST (object) Typumwandlung
T_OBJECT_OPERATOR -> Klassen und Objekte
T_NULLSAFE_OBJECT_OPERATOR ?-> Klassen und Objekte
T_OPEN_TAG <?php, <? or <% HTML-Bereich der Datei verlassen
T_OPEN_TAG_WITH_ECHO <?= or <%= HTML-Bereich der Datei verlassen
T_OR_EQUAL |= Zuweisungsoperatoren
T_PAAMAYIM_NEKUDOTAYIM :: ::. Auch definiert als T_DOUBLE_COLON.
T_PLUS_EQUAL += Zuweisungsoperatoren
T_POW ** Arithmetische Operatoren
T_POW_EQUAL **= Zuweisungsoperatoren
T_PRINT print print
T_PRIVATE private Klassen und Objekte
T_PROTECTED protected Klassen und Objekte
T_PUBLIC public Klassen und Objekte
T_READONLY readonly classes and objects (verfügbar seit PHP 8.1.0)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return Rückgabe von Werten
T_SL << Bitweise Operatoren
T_SL_EQUAL <<= Zuweisungsoperatoren
T_SPACESHIP <=> Vergleichsoperatoren
T_SR >> Bitweise Operatoren
T_SR_EQUAL >>= Zuweisungsoperatoren
T_START_HEREDOC <<< Heredoc-Syntax
T_STATIC static Geltungsbereich von Variablen
T_STRING parent, self, etc. Dabei handelt es sich um Bezeichner, z. B. Schlüsselwörter wie parent und self, Funktionsnamen, Klassennamen usw. Vgl. T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST (string) Typumwandlung
T_STRING_VARNAME "${a komplexe Variablen-Interpolationssyntax
T_SWITCH switch switch
T_THROW throw Exceptions (Ausnahmen)
T_TRAIT trait Traits
T_TRAIT_C __TRAIT__ __TRAIT__
T_TRY try Exceptions (Ausnahmen)
T_UNSET unset() unset()
T_UNSET_CAST (unset) Typumwandlung
T_USE use Namensräume
T_VAR var Klassen und Objekte
T_VARIABLE $foo Variablen
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= Zuweisungsoperatoren
T_YIELD yield Generatoren
T_YIELD_FROM yield from Generator

Siehe auch token_name().