PHP のエラー ハンドラ クラスを作成しようとしています。オブジェクトが作成されたことをテストしましたが、エラーを処理していないようです。
最初にインデックス ファイルの関数で同じコードを使用し、正常に動作しましたが、むしろクラスが必要です。これがエラーを処理しないのはなぜですか?
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;
}
}