我希望找到一个简单的T_EQUAL
或T_ASSIGN
作为=
here in PHP's parser token list的令牌,但它不存在。
然后使用什么标记来表达赋值操作?说我有$x = 1;
,它以T_VARIABLE
开头,然后是T_WHITESPACE
,然后是=
,接着是数字所属的任何标记,然后是{{} {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中仅包含反斜杠的字符数组实际上是两个字符(即"\\"
),因此该标记实际上并不是引擎盖下的单个字符。这只是我的解释理论。