php的默认错误处理是将消息输出。但是,有时候需要定义一些其他操作,这时就需要自定义错误处理函数。php提供内置函数set_error_handler可以帮助我们注册自己的错误处理函数(此函数可以用你自己定义的方式来处理运行中的错误比如返回json)
在这个异常处理程序被调用后,脚本会停止执行
可知,他能够捕获一部分错误,不能捕获系统级E_ERROR、E_PARSE等错误,但是这部分可以由register_shutdown_function()捕获
set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] ) : mixed
error_types 里指定的错误类型都会绕过 PHP 标准错误处理程序, 除非回调函数返回了 FALSE。 error_reporting() 设置将不会起到作用而你的错误函数继续会被调用
它将接管PHP原生错误处理函数,即当error_types为E_ALL | E_STRICT时所有的错误都会交给自定义的函数处理
第一个参数的回调函数
error_handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ) : bool
function error_handler($errno , $errstr, $errfile, $errline){
echo "错误级别的编号errno: $errno<br>";
echo "错误信息errstr: $errstr<br>";
echo "出错文件errfile: $errfile<br>";
echo "出错行号errline: $errline<br><br>";
}