如何获得所有的调用类?
我试过了:
function __autoload ($class){
require $class;
debug_print_backtrace();
}
$obj1 = new Foo();
$obj2 = new Foo();
$obj3 = new Foo();
结果:
#0 __autoload(Foo) called at [/var/www/index.php:8]
但我需要结果 - 我需要列出所有电话:(
#0 __autoload(Foo) called at [/var/www/index.php:8]
#0 __autoload(Foo) called at [/var/www/index.php:9]
#0 __autoload(Foo) called at [/var/www/index.php:10]
有人可以帮忙吗?谢谢。
答案 0 :(得分:0)
问题是你没有在调用类上打印回溯,而是在加载上打印它。而且你只需要加载一次(第一次调用它)。
如果要在调用时显示它,则需要将其添加到Foo
类的构造函数中,例如
class Foo
{
public function __construct()
{
// your other construct code
// if you didn't have one, maybe a parent::__construct()
debug_print_backtrace();
}
}
现在,每次创建类的实例时都会获得回溯。
这意味着你必须在每个班级都这样做,这可能很乏味,但它是你能做的最好的。也许你想要做的事情有一个不同的解决方案,但你没有添加这个要求的原因,所以很难找到其他解决方案:)