我正在研究PHP的AST构建器并查看PHP的一些语法文件我注意到了
T_ENCAPSED_AND_WHITESPACE
我的AST构建器因使用令牌的HEREDOCS / NOWDOCS失败。我似乎无法找到该令牌的表示以及匹配的正则表达式
答案 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