Список токенов парсера

PHP-код внутренне представляется токенами. Фрагмент кода, который содержит недопустимую последовательность токенов, приводит к ошибкам наподобие Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10.", где токен == внутренне представляется как T_IS_EQUAL.

Следующая таблица перечисляет все токены. Токены также доступны как PHP-константы.

Замечание: Константы семейства T_*

Значения констант семейства T_* автоматически генерируются на основе базовой инфраструктуры синтаксического анализатора PHP. Поэтому конкретное значение токена иногда изменяется между двумя версиями PHP. И поэтому для совместимости между версиями PHP код пишут так, чтобы он не зависел от исходных значений констант семейства T_*, которые взяли из версии PHP X.Y.Z.

Пользователи определяют неопределённые константы семейства T_* значениями больших чисел наподобие 10_000, чтобы использовать константы в разных версиях PHP. При этом выбирают стратегию, которая будет работать как с версиями PHP, в которых разработчики языка определили значения констант семейства T_*, так и с версиями PHP, в которых константы не определяли.

<?php

// До PHP 7.4.0 константу T_FN не определяли
defined('T_FN') || define('T_FN', 10001);

?>

Токены
Токен Синтаксис Ссылка
T_ABSTRACT abstract Абстрактные классы
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG & Объявления типов (доступно с PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG & Объявления типов (доступно с PHP 8.1.0)
T_AND_EQUAL &= операторы присваивания
T_ARRAY array() array(), синтаксис массива
T_ARRAY_CAST (array) приведение типа
T_AS as foreach
T_ATTRIBUTE #[ attributes (доступно с PHP 8.0.0)
T_BAD_CHARACTER   все, что ниже ASCII 32 исключая \t (0x09), \n (0x0a) и \r (0x0d) (доступно с PHP 7.4.0)
T_BOOLEAN_AND && логические операторы
T_BOOLEAN_OR || логические операторы
T_BOOL_CAST (bool) или (boolean) приведение типа
T_BREAK break break
T_CALLABLE callable callable
T_CASE case switch
T_CATCH catch Исключения
T_CLASS class классы и объекты
T_CLASS_C __CLASS__ магические константы
T_CLONE clone классы и объекты
T_CLOSE_TAG ?> или %> PHP-код внутри HTML
T_COALESCE ?? операторы сравнения
T_COALESCE_EQUAL ??= операторы присваивания (доступно с PHP 7.4.0)
T_COMMENT // или #, и /* */ комментарии
T_CONCAT_EQUAL .= операторы присваивания
T_CONST const константы класса
T_CONSTANT_ENCAPSED_STRING "foo" или 'bar' строковой синтаксис
T_CONTINUE continue continue
T_CURLY_OPEN {$ расширенная интерполяция переменной в строке
T_DEC -- операторы инкремента\декремента
T_DECLARE declare declare
T_DEFAULT default switch
T_DIR __DIR__ магические константы
T_DIV_EQUAL /= операторы присваивания
T_DNUMBER 0.12 и т.д. числа с плавающей точкой
T_DO do do..while
T_DOC_COMMENT /** */ PHPDoc-комментарии
T_DOLLAR_OPEN_CURLY_BRACES ${ базовая интерполяция переменной в строке
T_DOUBLE_ARROW => синтаксис массивов
T_DOUBLE_CAST (real), (double) или (float) приведение типов
T_DOUBLE_COLON :: смотрите ниже T_PAAMAYIM_NEKUDOTAYIM
T_ECHO echo echo
T_ELLIPSIS ... аргументы функции
T_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE " $a" константная часть строки с переменными
T_ENDDECLARE enddeclare declare, альтернативный синтаксис
T_ENDFOR endfor for, альтернативный синтаксис
T_ENDFOREACH endforeach foreach, альтернативный синтаксис
T_ENDIF endif if, альтернативный синтаксис
T_ENDSWITCH endswitch switch, альтернативный синтаксис
T_ENDWHILE endwhile while, альтернативный синтаксис
T_ENUM enum Перечисления (доступно с PHP 8.1.0)
T_END_HEREDOC   синтаксис heredoc
T_EVAL eval() eval()
T_EXIT exit или die exit(), die()
T_EXTENDS extends extends, классы и объекты
T_FILE __FILE__ магические константы
T_FINAL final Ключевое слово final
T_FINALLY finally Исключения
T_FN fn стрелочные функции (доступно с PHP 7.4.0)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function функции
T_FUNC_C __FUNCTION__ магические константы
T_GLOBAL global область видимости переменной
T_GOTO goto goto
T_HALT_COMPILER __halt_compiler() __halt_compiler
T_IF if if
T_IMPLEMENTS implements Интерфейсы объектов
T_INC ++ операторы инкремента\декремента
T_INCLUDE include include
T_INCLUDE_ONCE include_once include_once
T_INLINE_HTML   текст вне PHP
T_INSTANCEOF instanceof операторы типа
T_INSTEADOF insteadof Трейты
T_INTERFACE interface Интерфейсы объектов
T_INT_CAST (int) или (integer) приведение типов
T_ISSET isset() isset()
T_IS_EQUAL == операторы сравнения
T_IS_GREATER_OR_EQUAL >= операторы сравнения
T_IS_IDENTICAL === операторы сравнения
T_IS_NOT_EQUAL != или <> операторы сравнения
T_IS_NOT_IDENTICAL !== операторы сравнения
T_IS_SMALLER_OR_EQUAL <= операторы сравнения
T_LINE __LINE__ магические константы
T_LIST list() list()
T_LNUMBER 123, 012, 0x1ac и т.д. целые числа
T_LOGICAL_AND and логические операторы
T_LOGICAL_OR or логические операторы
T_LOGICAL_XOR xor логические операторы
T_MATCH match match (доступно с PHP 8.0.0)
T_METHOD_C __METHOD__ магические константы
T_MINUS_EQUAL -= операторы присваивания
T_MOD_EQUAL %= операторы присваивания
T_MUL_EQUAL *= операторы присваивания
T_NAMESPACE namespace пространства имён
T_NAME_FULLY_QUALIFIED \App\Namespace пространства имён (доступно с PHP 8.0.0)
T_NAME_QUALIFIED App\Namespace пространства имён (доступно с PHP 8.0.0)
T_NAME_RELATIVE namespace\Namespace пространства имён (доступно с PHP 8.0.0)
T_NEW new классы и объекты
T_NS_C __NAMESPACE__ пространства имён
T_NS_SEPARATOR \ пространства имён
T_NUM_STRING "$a[0]" цифровой индекс массива внутри строки
T_OBJECT_CAST (object) приведение типов
T_OBJECT_OPERATOR -> классы и объекты
T_NULLSAFE_OBJECT_OPERATOR ?-> классы и объекты
T_OPEN_TAG <?php, <? или <% PHP-код внутри HTML
T_OPEN_TAG_WITH_ECHO <?= или <%= PHP-код внутри HTML
T_OR_EQUAL |= операторы присваивания
T_PAAMAYIM_NEKUDOTAYIM :: оператор разрешения области видимости. Также определяется как T_DOUBLE_COLON.
T_PLUS_EQUAL += операторы присваивания
T_POW ** арифметические операторы
T_POW_EQUAL **= операторы присваивания
T_PRINT print print
T_PRIVATE private классы и объекты
T_PROTECTED protected классы и объекты
T_PUBLIC public классы и объекты
T_READONLY readonly классы и объекты (доступно с PHP 8.1.0)
T_REQUIRE require require
T_REQUIRE_ONCE require_once require_once
T_RETURN return возвращаемые значения
T_SL << побитовые операторы
T_SL_EQUAL <<= операторы присваивания
T_SPACESHIP <=> Операторы сравнения
T_SR >> побитовые операторы
T_SR_EQUAL >>= операторы присваивания
T_START_HEREDOC <<< синтаксис heredoc
T_STATIC static область видимости переменной
T_STRING parent, self и т.п.. идентификаторы, например, ключевые слова вроде parent и self, сюда подходят также имена функций, классов и некоторые другие. Смотрите также T_CONSTANT_ENCAPSED_STRING
T_STRING_CAST (string) приведение типов
T_STRING_VARNAME "${a интерполяция переменной переменной в строке
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) приведение типов
T_USE use пространства имён
T_VAR var классы и объекты
T_VARIABLE $foo переменные
T_WHILE while while, do..while
T_WHITESPACE \t \r\n  
T_XOR_EQUAL ^= операторы присваивания
T_YIELD yield генераторы
T_YIELD_FROM yield from generators

Смотрите также описание функции token_name().