List of Parser Tokens

Various parts of the PHP language are represented internally by tokens. A code snippet that contains an invalid sequence of tokens may lead to errors like Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." where token == is internally represented by T_IS_EQUAL.

The following table lists all tokens. They are also available as PHP constants.

Note: Usage of T_* constants

T_* constants values are automatically generated based on PHP's underlying parser infrastructure. This means that the concrete value of a token may change between two PHP versions. This means that your code should never rely directly on the original T_* values taken from PHP version X.Y.Z, to provide some compatibility across multiple PHP versions.

To make use of T_* constants across multiple PHP versions, undefined constants may be defined by the user (using big numbers like 10000) with an appropriate strategy that will work with both PHP versions and T_* values.

<?php
// Prior to PHP 7.4.0, T_FN is not defined.
defined('T_FN') || define('T_FN', 10001);
Tokens
TokenSyntaxReference
T_ABSTRACTabstractClass Abstraction
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG&Type declarations (available as of PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG&Type declarations (available as of PHP 8.1.0)
T_AND_EQUAL&=assignment operators
T_ARRAYarray()array(), array syntax
T_ARRAY_CAST(array)type-casting
T_ASasforeach
T_ATTRIBUTE#[attributes (available as of PHP 8.0.0)
T_BAD_CHARACTER  anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d) (available as of PHP 7.4.0)
T_BOOLEAN_AND&&logical operators
T_BOOLEAN_OR||logical operators
T_BOOL_CAST(bool) or (boolean)type-casting
T_BREAKbreakbreak
T_CALLABLEcallablecallable
T_CASEcaseswitch
T_CATCHcatchExceptions
T_CLASSclassclasses and objects
T_CLASS_C__CLASS__magic constants
T_CLONEcloneclasses and objects
T_CLOSE_TAG?> or %>escaping from HTML
T_COALESCE??comparison operators
T_COALESCE_EQUAL??=assignment operators (available as of PHP 7.4.0)
T_COMMENT// or #, and comments
T_CONCAT_EQUAL.=assignment operators
T_CONSTconstclass constants
T_CONSTANT_ENCAPSED_STRING"foo" or 'bar'string syntax
T_CONTINUEcontinuecontinue
T_CURLY_OPEN{$complex variable parsed syntax
T_DEC--incrementing/decrementing operators
T_DECLAREdeclaredeclare
T_DEFAULTdefaultswitch
T_DIR__DIR__magic constants
T_DIV_EQUAL/=assignment operators
T_DNUMBER0.12, etc.floating point numbers
T_DOdodo..while
T_DOC_COMMENTPHPDoc style comments
T_DOLLAR_OPEN_CURLY_BRACES${complex variable parsed syntax
T_DOUBLE_ARROW=>array syntax
T_DOUBLE_CAST(real), (double) or (float)type-casting
T_DOUBLE_COLON::see T_PAAMAYIM_NEKUDOTAYIM below
T_ECHOechoecho
T_ELLIPSIS...function arguments
T_ELSEelseelse
T_ELSEIFelseifelseif
T_EMPTYemptyempty()
T_ENCAPSED_AND_WHITESPACE" $a"constant part of string with variables
T_ENDDECLAREenddeclaredeclare, alternative syntax
T_ENDFORendforfor, alternative syntax
T_ENDFOREACHendforeachforeach, alternative syntax
T_ENDIFendifif, alternative syntax
T_ENDSWITCHendswitchswitch, alternative syntax
T_ENDWHILEendwhilewhile, alternative syntax
T_ENUMenumEnumerations (available as of PHP 8.1.0)
T_END_HEREDOC heredoc syntax
T_EVALeval()eval()
T_EXITexit or dieexit(), die()
T_EXTENDSextendsextends, classes and objects
T_FILE__FILE__magic constants
T_FINALfinalFinal Keyword
T_FINALLYfinallyExceptions
T_FNfnarrow functions (available as of PHP 7.4.0)
T_FORforfor
T_FOREACHforeachforeach
T_FUNCTIONfunctionfunctions
T_FUNC_C__FUNCTION__magic constants
T_GLOBALglobalvariable scope
T_GOTOgotogoto
T_HALT_COMPILER__halt_compiler()__halt_compiler
T_IFifif
T_IMPLEMENTSimplementsObject Interfaces
T_INC++incrementing/decrementing operators
T_INCLUDEincludeinclude
T_INCLUDE_ONCEinclude_onceinclude_once
T_INLINE_HTML text outside PHP
T_INSTANCEOFinstanceoftype operators
T_INSTEADOFinsteadofTraits
T_INTERFACEinterfaceObject Interfaces
T_INT_CAST(int) or (integer)type-casting
T_ISSETisset()isset()
T_IS_EQUAL==comparison operators
T_IS_GREATER_OR_EQUAL>=comparison operators
T_IS_IDENTICAL===comparison operators
T_IS_NOT_EQUAL!= or <>comparison operators
T_IS_NOT_IDENTICAL!==comparison operators
T_IS_SMALLER_OR_EQUAL<=comparison operators
T_LINE__LINE__magic constants
T_LISTlist()list()
T_LNUMBER123, 012, 0x1ac, etc.integers
T_LOGICAL_ANDandlogical operators
T_LOGICAL_ORorlogical operators
T_LOGICAL_XORxorlogical operators
T_MATCHmatchmatch (available as of PHP 8.0.0)
T_METHOD_C__METHOD__magic constants
T_MINUS_EQUAL-=assignment operators
T_MOD_EQUAL%=assignment operators
T_MUL_EQUAL*=assignment operators
T_NAMESPACEnamespacenamespaces
T_NAME_FULLY_QUALIFIED\App\Namespacenamespaces (available as of PHP 8.0.0)
T_NAME_QUALIFIEDApp\Namespacenamespaces (available as of PHP 8.0.0)
T_NAME_RELATIVEnamespace\Namespacenamespaces (available as of PHP 8.0.0)
T_NEWnewclasses and objects
T_NS_C__NAMESPACE__namespaces
T_NS_SEPARATOR\namespaces
T_NUM_STRING"$a[0]"numeric array index inside string
T_OBJECT_CAST(object)type-casting
T_OBJECT_OPERATOR->classes and objects
T_NULLSAFE_OBJECT_OPERATOR?->classes and objects
T_OPEN_TAG<?php, <? or <%escaping from HTML
T_OPEN_TAG_WITH_ECHO<?= or <%=escaping from HTML
T_OR_EQUAL|=assignment operators
T_PAAMAYIM_NEKUDOTAYIM::::. Also defined as T_DOUBLE_COLON.
T_PLUS_EQUAL+=assignment operators
T_POW**arithmetic operators
T_POW_EQUAL**=assignment operators
T_PRINTprintprint
T_PRIVATEprivateclasses and objects
T_PROTECTEDprotectedclasses and objects
T_PUBLICpublicclasses and objects
T_READONLYreadonlyclasses and objects (available as of PHP 8.1.0)
T_REQUIRErequirerequire
T_REQUIRE_ONCErequire_oncerequire_once
T_RETURNreturnreturning values
T_SL<<bitwise operators
T_SL_EQUAL<<=assignment operators
T_SPACESHIP<=>comparison operators
T_SR>>bitwise operators
T_SR_EQUAL>>=assignment operators
T_START_HEREDOC<<<heredoc syntax
T_STATICstaticvariable scope
T_STRINGparent, self, etc. identifiers, e.g. keywords like parent and self, function names, class names and more are matched. See also T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST(string)type-casting
T_STRING_VARNAME"${acomplex variable parsed syntax
T_SWITCHswitchswitch
T_THROWthrowExceptions
T_TRAITtraitTraits
T_TRAIT_C__TRAIT____TRAIT__
T_TRYtryExceptions
T_UNSETunset()unset()
T_UNSET_CAST(unset)type-casting
T_USEusenamespaces
T_VARvarclasses and objects
T_VARIABLE$foovariables
T_WHILEwhilewhile, do..while
T_WHITESPACE\t \r\n 
T_XOR_EQUAL^=assignment operators
T_YIELDyieldgenerators
T_YIELD_FROMyield fromgenerators

See also token_name().

To Top