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