0

可能重复:
如何在 PHP 中获取调用函数/方法的名称?

所以在 PHP 中,我正在尝试构建一个自定义错误处理程序类。这很简单:我给它一个代码,它会返回一个格式化的错误消息,我可以用它来发送到移动设备。

所以它现在看起来像这样:

class Errorhandler {
   private $errors = array(
       //here be error codes and messages
       100 => 'Missing input or parameter!'
  );

   public function __construct($code = 100){
        //return formatted output
   }
}

所以我会使用上面的类:

public function someFunction(){
    //some conditions met, then throw an error
    $handler = new ErrorHandler();
    $this->response = $handler;        
}

所以我需要在我的 Errorhandler 类中使用父函数的名称(someFunction),这样我就可以用格式化的错误消息返回它。附带说明:我不想为此使用参数,那里写得太多。

4

3 回答 3

2

__FUNCTION__

这是魔法。在此处查看更多信息:http ://www.php.net/manual/en/language.constants.predefined.php

至于在您的 ErrorHandler 类中实际获取它,您必须将它传递给构造函数。PHP 没有那么神奇。

于 2012-10-24T20:05:10.677 回答
0

您可以使用debug_backtrace()获取已调用您的函数的函数。

debug_backtrace()返回当前调用堆栈。

于 2012-10-24T20:07:54.393 回答
0

您可以解析debug_backtrace()函数输出。它返回所有调用的关联数组到最顶层(http://php.net/manual/en/function.debug-backtrace.php)

另请注意,致命错误将中断正常的脚本执行并捕获它,您需要从注册的回调中调用错误处理程序register_shutdown_function()(http://php.net/manual/ru/function.register-shutdown-function.php)

于 2012-10-24T20:25:41.663 回答