附录 P. 解析器代号列表

PHP 语言的不同部分在内部被表示为类似 T_SR 的类型。PHP 在解析错误时输出这样的标识符,例如 "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

应该知道 T_SR 的含义。对于所有不知道的人,下表列出了这些标识符,PHP 语法和在手册中适当位置的参考。

表格 P-1. 代号

代号语法参考
T_AND_EQUAL&=赋值运算符
T_ARRAYarray()array()数组语法
T_ARRAY_CAST(array)类型转换
T_ASasforeach
T_BAD_CHARACTER 在 ASCII 32 之前除了 \t (0x09), \n (0x0a) 和 \r (0x0d) 以外的任何字符
T_BOOLEAN_AND&&逻辑运算符
T_BOOLEAN_OR||逻辑运算符
T_BOOL_CAST(bool) 或 (boolean)类型转换
T_BREAKbreakbreak
T_CASEcaseswitch
T_CHARACTER  
T_CLASSclass类和对象
T_CLONEclone类和对象。仅用于 PHP 5。
T_CLOSE_TAG?> 或 %> 
T_COMMENT// 或 #,以及 PHP 5 下的 /* */注释
T_CONCAT_EQUAL.=赋值运算符
T_CONSTconst 
T_CONSTANT_ENCAPSED_STRING"foo" 或 'bar'字符串语法
T_CONTINUEcontinue 
T_CURLY_OPEN  
T_DEC--递增/递减运算符
T_DECLAREdeclaredeclare
T_DEFAULTdefaultswitch
T_DIV_EQUAL/=赋值运算符
T_DNUMBER0.12,等等浮点数
T_DOC_COMMENT/** */PHPDoc 风格的注释(仅用于 PHP 5)
T_DOdodo..while
T_DOLLAR_OPEN_CURLY_BRACES${复杂变量解析语法
T_DOUBLE_ARROW=>数组语法
T_DOUBLE_CAST(real), (double) 或 (float)类型转换
T_ECHOechoecho()
T_ELSEelseelse
T_ELSEIFelseifelseif
T_EMPTYemptyempty()
T_ENCAPSED_AND_WHITESPACE  
T_ENDDECLAREenddeclaredeclare替代语法
T_ENDFORendforfor替代语法
T_ENDFOREACHendforeachforeach替代语法
T_ENDIFendifif替代语法
T_ENDSWITCHendswitchswitch替代语法
T_ENDWHILEendwhilewhile替代语法
T_END_HEREDOC heredoc 语法
T_EVALeval()eval()
T_EXITexit 或 dieexit(), die()
T_EXTENDSextendsextends类和对象
T_FILE__FILE__常量
T_FORforfor
T_FOREACHforeachforeach
T_FUNCTIONfunction 或 cfunction函数
T_GLOBALglobal变量范围
T_IFifif
T_INC++递增/递减运算符
T_INCLUDEinclude()include()
T_INCLUDE_ONCEinclude_once()include_once()
T_INLINE_HTML  
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_MINUS_EQUAL-=赋值运算符
T_ML_COMMENT/* 和 */注释(仅用于 PHP 4)
T_MOD_EQUAL%=赋值运算符
T_MUL_EQUAL*=赋值运算符
T_NEWnew类和对象
T_NUM_STRING  
T_OBJECT_CAST(object)类型转换
T_OBJECT_OPERATOR->类和对象
T_OLD_FUNCTIONold_functionold_function
T_OPEN_TAG<?php, <? 或 <%从 HTML 转义
T_OPEN_TAG_WITH_ECHO<?= or <%=从 HTML 转义
T_OR_EQUAL|=赋值运算符
T_PAAMAYIM_NEKUDOTAYIM::::。也定义为 T_DOUBLE_COLON
T_PLUS_EQUAL+=赋值运算符
T_PRINTprint()print()
T_PRIVATEprivate类和对象。仅用于 PHP 5。
T_PUBLICpublic类和对象。仅用于 PHP 5。
T_PROTECTEDprotected类和对象。仅用于 PHP 5。
T_REQUIRErequire()require()
T_REQUIRE_ONCErequire_once()require_once()
T_RETURNreturn返回值
T_SL<<位运算符
T_SL_EQUAL<<=赋值运算符
T_SR>>位运算符
T_SR_EQUAL>>=赋值运算符
T_START_HEREDOC<<<heredoc 语法
T_STATICstatic变量范围
T_STRING  
T_STRING_CAST(string)类型转换
T_STRING_VARNAME  
T_SWITCHswitchswitch
T_UNSETunset()unset()
T_UNSET_CAST(unset)(无文档; 类型为 NULL
T_USEuse(未实现)
T_VARvar类和对象
T_VARIABLE$foo变量
T_WHILEwhilewhiledo..while
T_WHITESPACE  
T_XOR_EQUAL^=赋值运算符
T_FUNC_C__FUNCTION__常量自 PHP 4.3.0 起
T_CLASS_C__CLASS__常量,自 PHP 4.3.0 起

参见 token_name()