T_ENCAPSED_AND_WHITESPACE令牌表示

时间:2014-05-14 17:10:40

标签: php compiler-construction abstract-syntax-tree

我正在研究PHP的AST构建器并查看PHP的一些语法文件我注意到了

T_ENCAPSED_AND_WHITESPACE

我的AST构建器因使用令牌的HEREDOCS / NOWDOCS失败。我似乎无法找到该令牌的表示以及匹配的正则表达式

1 个答案:

答案 0 :(得分:2)

这是由双引号字符串中的引用数组键引起的。 e.g。

$foo['bar'] = 'baz';
echo "$foo['bar']";
PHP Parse error:  syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

正确的语法是:

echo "$foo[bar]"; // no quotes on the array key
echo "{$foo['bar']}"; // extended {} notation