确定PHP中的调用范围

时间:2011-01-28 19:00:00

标签: php oop

有没有办法确定从函数本身调用函数的范围? (或方法;我将使用函数来表示帖子的其余部分。)

我不想要的是必须将__FILE____CLASS__常量传递给函数。这些信息在堆栈跟踪等中可用,所以我知道它在某个地方浮动,但我想知道如何在运行时对它进行内省,而不会抛出异常。

如果解决方案存在任何性能特征,我也想知道这些。

有两个我感兴趣的用例。

  1. 确定哪个文件/行/函数称为我的函数
  2. 确定发起函数调用的类类型
  3. 基本上我想要的是:

    class util
    {
        public static function checkScope()
        {
            echo $magic_scope_stuff;
        }
    
        public static function blah()
        {
            util::checkScope();
        }
    }
    
    util::checkScope(); // main, line 14
    util::blah(); // class util, line 9
    

1 个答案:

答案 0 :(得分:3)

那是debug_backtrace()

结果数组为您提供从入口点到调用debug_backtrace的调用跟踪。