Список меток (tokens) парсера
Различные части PHP внутренне представлены типами вроде T_SR. PHP выводит
идентификаторы вроде этого в ошибках парсинга, например:
"Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."
Предполагается, что вы знаете, что означает T_SR. Для всех, кто этого не знает ниже есть таблица этих идентификаторов с синтаксисом и ссылками на соответствующие разделы документации.
Замечание: Использование T_* констант
Все метки приведенные ниже также являются PHP-константами. Их значение автоматически генерируется на основе базовой инфраструктуры анализатора РНР. Это означает, что конкретное значение метки может изменяться между двумя версиями PHP. Например, константа
T_FILE
имеет значение365
в PHP 5.3, в то время как это же значение относится кT_TRAIT
в PHP 5.4, а значение константыT_FILE
равно369
. Это означает, что для обеспечения совместимости в различных версиях PHP ваш код никогда не должен зависеть напрямую от значений T_* констант из какой-либо определенной версии PHP. Вместо этого ваш код должен использовать собственные значения (использовать длинные числа типа10000
) и соответствующую стратегию, которая будет работать со всеми версиями PHP и значениями T_* констант.
Метка | Синтаксис | Ссылка |
---|---|---|
T_ABSTRACT |
abstract | Абстрактные классы |
T_AND_EQUAL |
&= | операторы присваивания |
T_ARRAY |
array() | array(), синтаксис массива |
T_ARRAY_CAST |
(array) | приведение типа |
T_AS |
as | foreach |
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_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_METHOD_C |
__METHOD__ | магические константы |
T_MINUS_EQUAL |
-= | операторы присваивания |
T_MOD_EQUAL |
%= | операторы присваивания |
T_MUL_EQUAL |
*= | операторы присваивания |
T_NAMESPACE |
namespace | пространства имен |
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() | |
T_PRIVATE |
private | классы и объекты |
T_PROTECTED |
protected | классы и объекты |
T_PUBLIC |
public | классы и объекты |
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().