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