PHP - 如何获取所有调用类

时间:2017-04-01 11:08:15

标签: php

如何获得所有的调用类?

我试过了:

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]

有人可以帮忙吗?谢谢。

1 个答案:

答案 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();
    }
}

现在,每次创建类的实例时都会获得回溯。

这意味着你必须在每个班级都这样做,这可能很乏味,但它是你能做的最好的。也许你想要做的事情有一个不同的解决方案,但你没有添加这个要求的原因,所以很难找到其他解决方案:)