在禁用 replaceNodes 时候,Json 编码在递归时发生失败
作者: dhaeckel创建于 2025年3月11日更新于 2025年3月17日
你好 @nikic, 使用 NameResolver 并传递 replaceNodes 为 false 时, 我无法将类 AST 转换为 JSON, 这是因为递归引用。你可以在 https://GitHub.com/dhaeckel/php-parser-issue-repro 中查看示例, 你需要执行 vendor/bin/php-parse -N -j yaf.php 并更改 vendor/nikic/php-parser/bin/php-parse 中的 NameResolver 选项, 以查看问题。一个可能的缓解措施是在返回之前克隆已解析的名称, 以打破循环引用。请参阅 https://GitHub.com/nikic/PHP-Parser/pull/1075 了解可能的解决方案。如果您需要我的帮助, 请告诉我。
内容来源: nikic/PHP-Parser