如果调用特定文件,如何以不同的方式创建函数行为?

时间:2012-04-26 11:58:17

标签: php function autoload

  

可能重复:
  php: determine where function was called from

我有一个可由任何脚本调用的自动加载功能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\Class中定义a/class.php并且我希望使用MyName\Class extends \MyName\Class(在a/class.php内)进行扩展,但我希望自动加载器看起来{{1在\MyName\Class中询问b/class.php时是否在a/class.php中?}

1 个答案:

答案 0 :(得分:0)

您是否尝试过debug_backtrace()?