转储和操作表达式的AST

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.3,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

转储和操作表达式的AST

操作或检查用ExpressionLanguage组件创建的表达式很困难,因为它们是普通字符串。更好的方法是将这些表达式转换为AST。在计算机科学中,AST抽象语法树)是用编程语言编写的源代码结构的树形表示.在Sy欧宝娱乐app下载地址mfony中,ExpressionLanguage AST是一组节点,其中包含表示给定表达式的PHP类。

丢弃AST

调用getNodes ()方法来解析任何表达式以获取其AST:

12 3 4 5 6 7 8 9 10 11 12
使用欧宝娱乐app下载地址组件ExpressionLanguageExpressionLanguageast= (ExpressionLanguage ())->解析(“1 + 2”数组())->getNodes ();// dump AST节点进行检查var_dump (ast);//将AST节点转储为字符串表示形式astAsStringast->dump ();

操作AST

还可以将AST的节点转储到PHP节点数组中,以便对它们进行操作。调用toArray ()方法将AST转换为数组:

1 2 3 4 5 6 7
/ /……astAsArray= (ExpressionLanguage ())->解析(“1 + 2”数组())->getNodes ()->toArray ();
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。