我如何在我的班级中获取呼叫者功能名称

  • 本文关键字:获取 呼叫者 功能 php
  • 更新时间 :
  • 英文 :


可能的重复:
如何在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;        
}

因此,我需要在错误Handler类中的父函数的名称(某些功能),以便我可以使用格式的错误消息返回。附带注意:我不想为此使用参数,在那里写太多。

__FUNCTION__

这是魔术。请参阅此处:http://www.php.net/manual/en/language.constants.predefined.php

至于实际获取错误的人类类,您必须将其传递给构造函数。php不是魔术。

您可以使用debug_backtrace()获取称为您功能的功能。

debug_backtrace()返回当前呼叫堆栈。

您可以解析debug_backtrace()功能输出。它将所有调用的关联阵列返回到最高(http://php.net/manual/en/en/function.debug-backtrace.php)

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

最新更新