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

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

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