当我访问我的一个php页面时,我收到了一堆错误。有些是警告,其中一个是致命的错误。
我试图找出我的网页是否有任何致命错误。有没有办法获得该页面上发生的错误列表,所以我可以确定是否存在致命错误?
函数error_get_last()不能解决我的目的,因为它只列出最后发生的错误,这可能不一定是致命的错误。
谢谢,
答案 0 :(得分:2)
我不知道这可能是什么用例,但回答你的问题 - 你可以设置自己的错误处理程序,并捕获所有错误:
$errors = array();
set_error_handler(function($code, $msg, $file, $line, $context) use(&$errors){
$errors[] = compact('code', 'msg', 'file', 'line', 'context');
});
并在脚本末尾检查该数组。
要“捕获”致命错误,请在关机期间检查error_get_last()
:
register_shutdown_function(function(){
$error = error_get_last();
if($error && in_array($error['type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR)){
// some kind of fatal error
}
});