我在 StackOverFlow 上找到了一段代码,用于错误处理程序。我面临的问题与主题启动者所问的完全一样。
这些错误根本不会被报告。有点令人沮丧,因为我真的需要一个像样的错误处理程序。我从 Joseph Lenton 那里找到了一个漂亮的,但它绝对破坏了我想做的一切所以我需要创建自己的适合我的。
问题:
它不报告任何错误??:S
<?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;
}
}
?>
我调用脚本:
<?php
include('function.errorhandler.class.php');
$error = new class_error();
echo 'dssd;
?>
我仍然不断收到相同的旧 PHP 生成错误。:o
所以让我们回到基础,因为即使是最简单的事情也似乎不可能再次发挥作用。
<?php
include('function.errorhandler.class.php');
///######## DEFAULT ERROR HANDLER
set_error_handler('ErrorHandler');
///######## SHUTDOWN HANDLER
register_shutdown_function('FatalErrorHandler');
///######## A FILE BECAUSE PHP DOES NOT WANT TO ACCEPT ANY ERROR HANDLER IN THE SAME FILE
include('hi.php');
?>
并在 errorhandler.class 文件中定义:
function ErrorHandler(){
exit(print_r(func_get_args()));
}
function FatalErrorHandler(){
exit(print_r(func_get_args()));
}
我仍然收到相同的旧生锈 PHP 错误通知:
( ! ) 解析错误:语法错误,意外的 ''sdds; ' (T_ENCAPSED_AND_WHITESPACE) 在 N:\wamp\www\project\errorhandler\hoi.php 第 3 行调用堆栈
时间记忆功能位置
1 0.0003 240376 {main}( ) ..\errorHandler.php:0 数组 ( ) 1