可能重复:
Find out which class called a method in another class.查找谁在PHP中的类调用一个方法
大家好,
我有一个类,我找不到他的对象创建。 我的意思是,我可以以某种方式找出谁称他的构造函数?
非常感谢, Andrey。
可能重复:
Find out which class called a method in another class.查找谁在PHP中的类调用一个方法
大家好,
我有一个类,我找不到他的对象创建。 我的意思是,我可以以某种方式找出谁称他的构造函数?
非常感谢, Andrey。
使用
$trace = debug_backtrace();
echo "<pre>".print_r($trace[1])."</pre>";
//see all the displays '1' is the referrer '0' is self
echo $callingfunction = $trace[1]['function'];
echo $callingclass = $trace[1]['class'];
谢谢,这个解决方案帮了我 – 2010-11-01 08:14:05
您可以使用debug_backtrace()或者更好的跟踪器/分析器如Xdebug来收集信息,例如KCachegrind可视化它。
@Gordon:我认为这个问题的不同,因为“我有一个类,我找不到他的对象创建”,因此(IMO)debug_backtrace(有点)不单一的最佳答案。你不应该改变现有的代码来获得类/依赖/调用图。 – VolkerK 2010-10-28 16:02:10
@VolkerK其实debug_backtrace是最差的答案。如果OP的目标是要知道被叫方的主叫方,则应将主叫方传递给被叫方,而不是被叫方试图从回溯中找出主叫方。并且您正确地建议您使用调试器/分析器来阅读该问题。 – Gordon 2010-10-28 16:09:44