什么是代表PHP中的简单赋值(=)的标记?

时间:2013-10-22 01:46:04

标签: php token

我希望找到一个简单的T_EQUALT_ASSIGN作为= here in PHP's parser token list的令牌,但它不存在。

然后使用什么标记来表达赋值操作?说我有$x = 1;,它以T_VARIABLE开头,然后是T_WHITESPACE,然后是=,接着是数字所属的任何标记,然后是{{} {1}}。用什么标记来表示这些字符?

1 个答案:

答案 0 :(得分:3)

如果您运行此代码:

var_dump(token_get_all('<?php $foo = "bar"; ?>'));

您会看到=;不是令牌。

PHP Manual表示token_get_all返回“...是一个字符(即:; &gt; ; 等...),或包含元素0中的令牌索引的三元素数组,元素1中原始令牌的字符串内容和元素中的行号2.”我解释这个的方式,单个字符不是标记。

虽然您可能会在“List of Parser Tokens”页面上注意到T_NS_SEPARATOR令牌(即反斜杠)是单个字符。但是,由于PHP是用C语言编写的,并且由于C中仅包含反斜杠的字符数组实际上是两个字符(即"\\"),因此该标记实际上并不是引擎盖下的单个字符。这只是我的解释理论。