处理PHP类时出错
我正在尝试为php编写一个错误处理程序类。我已经测试过对象是否已经创建,但它似乎没有处理错误 我最初在索引文件中的函数中使用了相同的代码,它工作得很好,但我更希望有一个类。为什么这不处理错误处理PHP类时出错,php,class,error-handling,Php,Class,Error Handling,我正在尝试为php编写一个错误处理程序类。我已经测试过对象是否已经创建,但它似乎没有处理错误 我最初在索引文件中的函数中使用了相同的代码,它工作得很好,但我更希望有一个类。为什么这不处理错误 class class_error { public function __construct() { // set to the user defined error handler set_error_handler($this->errorHand
class class_error
{
public function __construct()
{
// set to the user defined error handler
set_error_handler($this->errorHandler());
}
public function errorHandler($errno, $errstr, $errfile, $errline)
{
//don't display error if no error number
if (!(error_reporting() & $errno)) {
return;
}
//display errors according to the error number
switch ($errno)
{
case E_USER_ERROR:
echo "<b>ERROR</b> [$errno] $errstr<br />\n";
echo " Fatal error on line $errline in file $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Aborting...<br />\n";
exit(1);
break;
case E_USER_WARNING:
echo "<b>WARNING</b> [$errno] $errstr<br />\n";
break;
case E_USER_NOTICE:
echo "<b>NOTICE</b> [$errno] $errstr<br />\n";
break;
default:
echo "<b>UNKNOWN ERROR</b> [$errno] $errstr<br />\n";
break;
}
//don't execute PHP internal error handler
return true;
}
}
class\u错误
{
公共函数构造()
{
//设置为用户定义的错误处理程序
设置错误处理程序($this->errorHandler());
}
公共函数errorHandler($errno、$errstr、$errfile、$errline)
{
//如果没有错误号,则不显示错误
如果(!(错误报告()&$errno)){
返回;
}
//根据错误编号显示错误
交换机($errno)
{
案例E_用户_错误:
echo“ERROR[$errno]$errstr
\n”;
echo“文件$errfile中的$errline行出现致命错误”;
echo“.PHP”.PHP_VERSION.”(“.PHP_OS.”)
\n”;
回显“正在中止…
\n”;
出口(1);
打破
案例E_用户_警告:
回显“警告[$errno]$errstr
\n”;
打破
案例E_用户通知:
echo“通知[$errno]$errstr
\n”;
打破
违约:
echo“未知错误[$errno]$errstr
\n”;
打破
}
//不执行PHP内部错误处理程序
返回true;
}
}
使用以下方法:
set_error_handler(array($this, "errorHandler"));
更多信息:将其作为答案添加。是的,我会在几个记号后给你打个记号:)如果你的PHP是最新的,请使用短数组语法:
set\u error\u handler([$this,'errorHandler'])
。我甚至不知道这个存在。谢谢分享