使用PHP-Parser查找对象的类型

问题描述:

使用PHP-Parser,当我遍历程序中的节点时,如何找到对象的类型?例如,在下面的程序中,当我遇到节点$a->some_method();时,我如何发现$ a的类型是'TestClass'?使用PHP-Parser查找对象的类型

$a = new TestClass(); 

$a->some_method(); 

现在,我知道我可以跟踪内部的对象$ a是一个类型的TestClass的,并且在单个文件的程序工作正常,但我不知道如何保持轨道类型的跨越多个文件的程序中的对象类型,我特别困惑于从函数或方法返回时如何维护变量的类型。我是否全都错了?有没有更简单的方法使用PHP解析器来找出对象的类型?

+0

解析器实际上只是将源代码转换为AST。它根本不评估类型,这将是链中的下一步和编译器的工作。你必须自己做这个。 – deceze

简短的回答是:你不能。

不实际执行代码是不可能的。