解析器代号列表

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

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

代号
代号 语法 参考
T_ABSTRACT abstract 抽象类(自 PHP 5.0.0 起可用)
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) 以外的任何字符
T_BOOLEAN_AND && 逻辑运算符
T_BOOLEAN_OR || 逻辑运算符
T_BOOL_CAST (bool) 或 (boolean) 类型转换
T_BREAK break break
T_CASE case switch
T_CATCH catch 异常处理(自 PHP 5.0.0 起可用)
T_CHARACTER    
T_CLASS class 类和对象
T_CLONE clone 类和对象。仅用于 PHP 5。
T_CLOSE_TAG ?> 或 %>  
T_COMMENT // 或 #,以及 PHP 5 下的 /* */ 注释
T_CONCAT_EQUAL .= 赋值运算符
T_CONST const  
T_CONSTANT_ENCAPSED_STRING "foo" 或 'bar' 字符串语法
T_CONTINUE continue  
T_CURLY_OPEN    
T_DEC -- 递增/递减运算符
T_DECLARE declare declare
T_DEFAULT default switch
T_DIV_EQUAL /= 赋值运算符
T_DNUMBER 0.12,等等 浮点数
T_DOC_COMMENT /** */ PHPDoc 风格的注释(仅用于 PHP 5)
T_DO do do..while
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_ELSE else else
T_ELSEIF elseif elseif
T_EMPTY empty empty()
T_ENCAPSED_AND_WHITESPACE    
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 关键字(自 PHP 5.0.0 起可用)
T_FOR for for
T_FOREACH foreach foreach
T_FUNCTION function 或 cfunction 函数
T_GLOBAL global 变量范围
T_HALT_COMPILER __halt_compiler() __halt_compiler(自 PHP 5.1.0 起可用)
T_IF if if
T_IMPLEMENTS implements 对象接口(自 PHP 5.0.0 起可用)
T_INC ++ 递增/递减运算符
T_INCLUDE include() include
T_INCLUDE_ONCE include_once() include_once
T_INLINE_HTML    
T_INSTANCEOF instanceof type operators(仅 PHP5)
T_INT_CAST (int) 或 (integer) 类型转换
T_INTERFACE interface 对象接口(自 PHP 5.0.0 起可用)
T_ISSET isset() 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_LIST list() list()
T_LNUMBER 123,012,0x1ac,等等 整型
T_LOGICAL_AND and 逻辑运算符
T_LOGICAL_OR or 逻辑运算符
T_LOGICAL_XOR xor 逻辑运算符
T_MINUS_EQUAL -= 赋值运算符
T_ML_COMMENT /* 和 */ 注释(仅用于 PHP 4)
T_MOD_EQUAL %= 赋值运算符
T_MUL_EQUAL *= 赋值运算符
T_NEW new 类和对象
T_NUM_STRING    
T_OBJECT_CAST (object) 类型转换
T_OBJECT_OPERATOR -> 类和对象
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_PRINT print() print
T_PRIVATE private 类和对象。仅用于 PHP 5。
T_PUBLIC public 类和对象。仅用于 PHP 5。
T_PROTECTED protected 类和对象。仅用于 PHP 5。
T_REQUIRE require() require
T_REQUIRE_ONCE require_once() require_once
T_RETURN return 返回值
T_SL << 位运算符
T_SL_EQUAL <<= 赋值运算符
T_SR >> 位运算符
T_SR_EQUAL >>= 赋值运算符
T_START_HEREDOC <<< heredoc 语法
T_STATIC static 变量范围
T_STRING    
T_STRING_CAST (string) 类型转换
T_STRING_VARNAME    
T_SWITCH switch switch
T_THROW throw 异常处理(自 PHP 5.0.0 起可用)
T_TRY try 异常处理(自 PHP 5.0.0 起可用)
T_UNSET unset() unset()
T_UNSET_CAST (unset) (无文档; 类型为 NULL
T_USE use (未实现)
T_VAR var 类和对象
T_VARIABLE $foo 变量
T_WHILE while whiledo..while
T_WHITESPACE    
T_XOR_EQUAL ^= 赋值运算符
T_FUNC_C __FUNCTION__ 常量,自 PHP 4.3.0 起可用
T_CLASS_C __CLASS__ 常量,自 PHP 4.3.0 起可用

参见 token_name()