请教一个关于调试的问题
程序员文章站
2022-06-13 08:47:20
...
class A extends class B;
class B extends class C;
A->test();
A,B,C中分别有很多方法,有没有什么测试方法能追踪到 此时 test方法是在哪个类中?
我发现print_r和var_dump 把类名传进去,只能打印出属性信息,不能打印出方法的信息。
请问,查询方法信息有没有什么调试方法啊,刚开始学php,求指教。
class B extends class C;
A->test();
A,B,C中分别有很多方法,有没有什么测试方法能追踪到 此时 test方法是在哪个类中?
我发现print_r和var_dump 把类名传进去,只能打印出属性信息,不能打印出方法的信息。
请问,查询方法信息有没有什么调试方法啊,刚开始学php,求指教。
回复讨论(解决方案)
var_dump(debug_backtrace());
var_dump(debug_backtrace());
这句话写在什么位置啊
写在test()方法里面
写在test()方法里面
可是不知道test方法在哪啊,现在想做的就是找到test方法的位置啊;
那只能用编辑器查找了吧,也很简单。
那只能用编辑器查找了吧,也很简单。
实际情况是A extends B ,B extends C , C extends D , D entends E .每个类中都有很多文件,如果A中有那个方法就会调用A的,B中没有才会在C中找。文本编辑器查的话得从A开始查,多麻烦啊
才几个文件就嫌麻烦了? 这是不行的。
可以通过php反射机制获取
$obj= new ReflectionClass("demo"); // demo 是一个类名echo "";print_r($obj->getMethods());echo ""
使用编辑器搜一下就知道了
下一篇: php导入当地excel到在线数据库