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. 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. Tokens Token Syntax Reference T_ABSTRACT abstract T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & (available as of PHP 8.1.0) T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & (available as of PHP 8.1.0) T_AND_EQUAL &= assignment operators T_ARRAY array() array, array syntax T_ARRAY_CAST (array) type-casting T_AS as &foreach; 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_BREAK break break T_CALLABLE callable callable T_CASE case switch T_CATCH catch T_CLASS class classes and objects T_CLASS_C __CLASS__ magic constants T_CLONE clone classes 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_CONST const class constants T_CONSTANT_ENCAPSED_STRING "foo" or 'bar' string syntax T_CONTINUE continue continue T_CURLY_OPEN {$ complex variable parsed syntax T_DEC -- incrementing/decrementing operators T_DECLARE declare declare T_DEFAULT default switch T_DIR __DIR__ magic constants T_DIV_EQUAL /= assignment operators T_DNUMBER 0.12, etc. floating point numbers T_DO do do..while T_DOC_COMMENT /** */ PHPDoc 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_ECHO echo echo T_ELLIPSIS ... function arguments T_ELSE else else T_ELSEIF elseif elseif T_EMPTY empty empty T_ENCAPSED_AND_WHITESPACE " $a" constant part of string with variables 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 (available as of PHP 8.1.0) T_END_HEREDOC heredoc syntax T_EVAL eval() eval T_EXIT exit or die exit, die T_EXTENDS extends extends, classes and objects T_FILE __FILE__ magic constants T_FINAL final T_FINALLY finally T_FN fn arrow functions (available as of PHP 7.4.0) T_FOR for for T_FOREACH foreach &foreach; T_FUNCTION function functions T_FUNC_C __FUNCTION__ magic constants T_GLOBAL global variable scope T_GOTO goto goto T_HALT_COMPILER __halt_compiler() T_IF if if T_IMPLEMENTS implements T_INC ++ incrementing/decrementing operators T_INCLUDE include() include T_INCLUDE_ONCE include_once() include_once T_INLINE_HTML text outside PHP T_INSTANCEOF instanceof type operators T_INSTEADOF insteadof T_INTERFACE interface T_INT_CAST (int) or (integer) type-casting T_ISSET isset() 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_LIST list() list T_LNUMBER 123, 012, 0x1ac, etc. integers T_LOGICAL_AND and logical operators T_LOGICAL_OR or logical operators T_LOGICAL_XOR xor logical operators T_MATCH match match (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_NAMESPACE namespace namespaces T_NAME_FULLY_QUALIFIED \App\Namespace namespaces (available as of PHP 8.0.0) T_NAME_QUALIFIED App\Namespace namespaces (available as of PHP 8.0.0) T_NAME_RELATIVE namespace\Namespace namespaces (available as of PHP 8.0.0) T_NEW new classes 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_PRINT print() print T_PRIVATE private classes and objects T_PROTECTED protected classes and objects T_PUBLIC public classes and objects T_READONLY readonly classes and objects (available as of PHP 8.1.0) T_REQUIRE require() require T_REQUIRE_ONCE require_once() require_once T_RETURN return returning 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_STATIC static variable scope T_STRING parent, 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 "${a complex variable parsed syntax T_SWITCH switch switch T_THROW throw T_TRAIT trait T_TRAIT_C __TRAIT__ __TRAIT__ T_TRY try T_UNSET unset() unset T_UNSET_CAST (unset) type-casting T_USE use namespaces T_VAR var classes and objects T_VARIABLE $foo variables T_WHILE while while, do..while T_WHITESPACE \t \r\n T_XOR_EQUAL ^= assignment operators T_YIELD yield generators T_YIELD_FROM yield from generators
See also token_name.