error_reporting = E_ALL; //设置向php报告发生的错误类型
display_errors = off; //设置错误是否显示在客户端
log_errors = on; //开启日志记录
error_log = 'error.log'; //错误日志记录文件
代码设置:
error_reporting(E_ALL);
error_reporting(E_ALL & ~E_NOTTICE);//屏蔽notice错误
error_reporting(E_ALL ^ ~E_NOTTICE);//屏蔽notice错误
error_reporting(0);//全部关闭
自定义处理
set_error_handler() 函数向系统声明错误处理函数
使用trigger_error() 函数,可以触发一个error
/**
* [error_handler description]
* @param [type] $errorno int [错误类型]
* @param [type] $errmsg string [错误信息]
* @param [type] $errfile [description]
* @param [type] $errline [description]
* @return [type] [description]
*/
function error_handler($errorno,$errmsg,$errfile,$errline)
{
switch ($errorno) {
case E_ERROR:
echo '致命错误类型是:【' .$errorno. '】
';
echo '致命错误信息是:【' .$errmsg. '】
';
echo '致命错误文件是:【' .$errfile. '】
';
echo '致命错误所在行是:【' .$errline. '】
';
break;
case E_NOTICE:
echo '通知错误类型是:【' .$errorno. '】
';
echo '通知错误信息是:【' .$errmsg. '】
';
echo '通知错误文件是:【' .$errfile. '】
';
echo '通知错误所在行是:【' .$errline. '】
';
break;
case E_WARNING:
echo '警告错误类型是:【' .$errorno. '】
';
echo '警告错误信息是:【' .$errmsg. '】
';
echo '警告错误文件是:【' .$errfile. '】
';
echo '警告错误所在行是:【' .$errline. '】
';
break;
default:
echo '错误类型是:【' .$errorno. '】
';
echo '错误信息是:【' .$errmsg. '】
';
echo '错误文件是:【' .$errfile. '】
';
echo '错误所在行是:【' .$errline. '】
';
break;
}
}
set_error_handler('error_handler');//此方法错误
echo $t;
echo '
';
echo 2/0;
echo '
';
new A();
/*
通知错误类型是:【8】
通知错误信息是:【Undefined variable: t】
通知错误文件是:【D:\Web\test\18-11-13\01.php】
通知错误所在行是:【49】
------------------------------------------------------------
警告错误类型是:【2】
警告错误信息是:【Division by zero】
警告错误文件是:【D:\Web\test\18-11-13\01.php】
警告错误所在行是:【51】
INF
------------------------------------------------------------
Fatal error: Uncaught Error: Class 'A' not found in D:\Web\test\18-11-13\01.php:53 Stack trace: #0 {main} thrown in D:\Web\test\18-11-13\01.php on line 53
*/