1

可能重复:
php:确定从哪里调用函数

我有一个my_function($class)可以被任何脚本调用的自动加载函数。它由 PHP 调用,spl_autoload_call()并且可以在任何地方发生。我如何编写脚本my_function($class)来检测它何时被特定的调用$file

就像是:

$file = '/htdocs/project/whatever.php';
if ($caller_file == $file) {
    ...

我如何找到$caller_file?我确实理解这个问题令人困惑,但我现在不能用更好的词来表达。因此,如果您有任何理解问题,请在评论中告诉我。

编辑(上下文)如果自动加载器将加载的文件与调用自动加载器的文件相同,我想让脚本加载不同的类的文件。

例如给:

namespace Something;
class Random extends Random {}

不应该加载自己,而是我们有一个不同的文件:

namespace Something;
class Random { ... }

换句话说:

如果我定义MyName\Classina/class.php并且我想用MyName\Class extends \MyName\Class(inside a/class.php) 扩展自身但我希望自动加载器\MyName\Classb/class.php被问到时查看 insidea/class.php怎么办?

4

1 回答 1

0

你试过 debug_backtrace() 吗?

于 2012-04-26T12:02:37.347 回答