解析器记号(token)列表

PHP 语言的各个部分在内部使用记号表示。包含无效序列的代码片段可能会导致错误。例如 Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10."。其中记号 == 在内部由 T_IS_EQUAL 表示。

下表列出的所有记号。也可以用作 PHP 常量。

注意: T_* 常量用法

T_* 常量是根据 PHP 底层解析器数据结构自动生成的。这意味着记号的具体值可能会在不同的 PHP 版本之间发生变更。这也意味着代码不应直接从 PHP X.Y.Z 版本中获取原始 T_* 值,从而提供跨越多个版本的兼容性。

为了在多个 PHP 版本中使用 T_* 常量,用户可以对 PHP 版本和 T_* 值使用适当的策略(使用类似 10000 的大数),来定义未定义的常量。

<?php
// 在 PHP 7.4.0 之前,未定义 T_FN。
defined('T_FN') || define('T_FN', 10001);
记号
记号语法参考
T_ABSTRACTabstract抽象类
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_ARRAYarray()array()数组语法
T_ARRAY_CAST(array)类型转换
T_ASasforeach
T_ATTRIBUTE#[注解(自 PHP 8.0.0 起有效)
T_BAD_CHARACTER  除了 \t(0x09)、\n(0x0a)、\r(0x0d)之外所有低于 ASCII 32 的内容(自 PHP 7.4.0 起有效)
T_BOOLEAN_AND&&逻辑运算符
T_BOOLEAN_OR||逻辑运算符
T_BOOL_CAST(bool) 或 (boolean)类型转换
T_BREAKbreakbreak
T_CALLABLEcallablecallable
T_CASEcaseswitch
T_CATCHcatch异常
T_CLASSclass类和对象
T_CLASS_C__CLASS__魔术常量
T_CLONEclone类和对象
T_CLOSE_TAG?> 或 %>从 HTML 中转义
T_COALESCE??比较运算符
T_COALESCE_EQUAL??=赋值运算符 (自 PHP 7.4.0 起有效)
T_COMMENT// 或 # 以及 注释
T_CONCAT_EQUAL.=赋值运算符
T_CONSTconst类常量
T_CONSTANT_ENCAPSED_STRING"foo" 或 'bar'字符串语法
T_CONTINUEcontinuecontinue
T_CURLY_OPEN{$复杂变量解析语法
T_DEC--递增/递减运算符
T_DECLAREdeclaredeclare
T_DEFAULTdefaultswitch
T_DIR__DIR__逻辑常量
T_DIV_EQUAL/=赋值运算符
T_DNUMBER0.12 等浮点数
T_DOdodo..while
T_DOC_COMMENTPHPDoc 风格注释
T_DOLLAR_OPEN_CURLY_BRACES${复杂变量解析语法
T_DOUBLE_ARROW=>数组语法
T_DOUBLE_CAST(real)、(double) 或 (float)类型转换
T_DOUBLE_COLON::见下面的 T_PAAMAYIM_NEKUDOTAYIM
T_ECHOechoecho
T_ELLIPSIS...函数参数
T_ELSEelseelse
T_ELSEIFelseifelseif
T_EMPTYemptyempty()
T_ENCAPSED_AND_WHITESPACE" $a"带变量字符串的常量部分
T_ENDDECLAREenddeclaredeclare替代语法
T_ENDFORendforfor替代语法
T_ENDFOREACHendforeachforeach替代语法
T_ENDIFendifif替代语法
T_ENDSWITCHendswitchswitch替代语法
T_ENDWHILEendwhilewhile替代语法
T_ENUMenum枚举(自 PHP 8.1.0 起有效)
T_END_HEREDOC heredoc 语法
T_EVALeval()eval()
T_EXITexit 或 dieexit()die()
T_EXTENDSextendsextends类和对象
T_FILE__FILE__魔法常量
T_FINALfinalFinal 关键字
T_FINALLYfinally异常
T_FNfn箭头函数 (自 PHP 7.4.0 起有效)
T_FORforfor
T_FOREACHforeachforeach
T_FUNCTIONfunction函数
T_FUNC_C__FUNCTION__魔法常量
T_GLOBALglobal变量作用域
T_GOTOgotogoto
T_HALT_COMPILER__halt_compiler()__halt_compiler
T_IFifif
T_IMPLEMENTSimplements对象接口
T_INC++递增/递减运算符
T_INCLUDEincludeinclude
T_INCLUDE_ONCEinclude_onceinclude_once
T_INLINE_HTML PHP 外的文本
T_INSTANCEOFinstanceof类型运算符
T_INSTEADOFinsteadofTrait
T_INTERFACEinterface对象接口
T_INT_CAST(int) 或 (integer)类型转换
T_ISSETisset()isset()
T_IS_EQUAL==比较运算符
T_IS_GREATER_OR_EQUAL>=比较运算符
T_IS_IDENTICAL===比较运算符
T_IS_NOT_EQUAL!= or <>比较运算符
T_IS_NOT_IDENTICAL!==比较运算符
T_IS_SMALLER_OR_EQUAL<=比较运算符
T_LINE__LINE__魔术常量
T_LISTlist()list()
T_LNUMBER123、012、0x1ac 等整型
T_LOGICAL_ANDand逻辑运算符
T_LOGICAL_ORor逻辑运算符
T_LOGICAL_XORxor逻辑运算符
T_MATCHmatchmatch(自 PHP 8.0.0 起有效)
T_METHOD_C__METHOD__魔术常量
T_MINUS_EQUAL-=赋值运算符
T_MOD_EQUAL%=赋值运算符
T_MUL_EQUAL*=赋值运算符
T_NAMESPACEnamespace命名空间
T_NAME_FULLY_QUALIFIED\App\Namespace命名空间(自 PHP 8.0.0 起有效)
T_NAME_QUALIFIEDApp\Namespace命名空间(自 PHP 8.0.0 起有效)
T_NAME_RELATIVEnamespace\Namespace命名空间(自 PHP 8.0.0 起有效)
T_NEWnew类和对象
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, <? 或 <%从 HTML 中转义
T_OPEN_TAG_WITH_ECHO<?= 或 <%=从 HTML 中转义
T_OR_EQUAL|=赋值运算符
T_PAAMAYIM_NEKUDOTAYIM::::。也定义为 T_DOUBLE_COLON
T_PLUS_EQUAL+=赋值运算符
T_POW**算术运算符
T_POW_EQUAL**=赋值运算符
T_PRINTprintprint
T_PRIVATEprivate类和对象
T_PROTECTEDprotected类和对象
T_PUBLICpublic类和对象
T_READONLYreadonly类和对象(自 PHP 8.1.0 起有效)
T_REQUIRErequirerequire
T_REQUIRE_ONCErequire_oncerequire_once
T_RETURNreturn返回值
T_SL<<位运算符
T_SL_EQUAL<<=赋值运算符
T_SPACESHIP<=>比较运算符
T_SR>>位运算符
T_SR_EQUAL>>=赋值运算符
T_START_HEREDOC<<<heredoc 语法
T_STATICstatic变量作用域
T_STRINGparent、self 等 标识符,比如像 parentself、函数名、类名等等的关键字。参阅 T_CONSTANT_ENCAPSED_STRING
T_STRING_CAST(string)类型转换
T_STRING_VARNAME"${a复杂变量解析语法
T_SWITCHswitchswitch
T_THROWthrow异常
T_TRAITtraitTrait
T_TRAIT_C__TRAIT____TRAIT__
T_TRYtry异常
T_UNSETunset()unset()
T_UNSET_CAST(unset)类型转换
T_USEuse命名空间
T_VARvar类和对象
T_VARIABLE$foo变量
T_WHILEwhilewhiledo..while
T_WHITESPACE\t \r\n 
T_XOR_EQUAL^=赋值运算符
T_YIELDyield生成器
T_YIELD_FROMyield from生成器

参见 token_name()

To Top