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

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 #[ Атрибуты, доступны с 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_PRIVATE_SET private(set) Хуки свойств, доступны с PHP 8.4.0
T_PROPERTY_C __PROPERTY__ Магические константы
T_PROTECTED protected Классы и объекты
T_PROTECTED_SET protected(set) Хуки свойств, доступны с PHP 8.4.0
T_PUBLIC public Классы и объекты
T_PUBLIC_SET public(set) Хуки свойств, доступны с PHP 8.4.0
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 Генераторы

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