使用register_shutdown_function函数绑定捕获函数
使用error_get_last函数捕获当前错误信息
register_shutdown_function("errorCheck");
function errorCheck(){
$error=error_get_last();
// print_r("<pre>");
// print_r($error);
// print_r("</pre>");
if ($error['type']==4){
if (file_exists($error_file)) {
//创建日志
$log_file=date("Y_m_d_G_i_s").".txt";
$file_open = fopen($log_file,"w+");
fclose($file_open);
}
}
}
function test(Array $a){
echo 1;
}
//强行报错
test(123);
error_get_last()打印结果,type为php错误级别表中的对应值
Array
(
[type] => 4096
[message] => Argument 1 passed to test() must be an array, integer given, called in D:\www\n.php on line 18 and defined
[file] => D:\www\n.php
[line] => 14
)
php错误级别
值 | 常量 | 描述 |
---|---|---|
2 | E_WARNING | 非致命的 run-time 错误。不暂停脚本执行。 |
8 | E_NOTICE | Run-time 通知。 脚本发现可能有错误发生,但也可能在脚本正常运行时发生。 |
256 | E_USER_ERROR | 致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。 |
512 | E_USER_WARNING | 非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。 |
1024 | E_USER_NOTICE | 用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。 |
4096 | E_RECOVERABLE_ERROR | 可捕获的致命错误。类似 E_ERROR,但可被用户定义的处理程序捕获。(参见 set_error_handler()) |
8191 | E_ALL | 所有错误和警告,除级别 E_STRICT 以外。 (在 PHP 6.0,E_STRICT 是 E_ALL 的一部分) |