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);
| Token | Syntax | Reference | 
|---|---|---|
T_ABSTRACT | 
     abstract | Class 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_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 | Exceptions | 
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 | Final Keyword | 
T_FINALLY | 
     finally | Exceptions | 
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() | __halt_compiler | 
T_IF | 
     if | if | 
T_IMPLEMENTS | 
     implements | Object Interfaces | 
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 | Traits | 
T_INTERFACE | 
     interface | Object Interfaces | 
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() | |
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 | Exceptions | 
T_TRAIT | 
     trait | Traits | 
T_TRAIT_C | 
     __TRAIT__ | __TRAIT__ | 
T_TRY | 
     try | Exceptions | 
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().