PHP detecta errors de nivell FATAL
Referència oficial
Pàgina web oficial set_error_handler register_shutdown_functionCom detectar perfectament tots els errors
set_error_handler es pot utilitzar per capturar la majoria dels tipus d'errors. Quan es produeix un error de nivell FATAL, perquè PHP finalitza directament l'operació, no es pot activar la funció de devolució de trucada definida per set_error_handler. En aquest moment, hem d’utilitzar register_shutdown_function per configurar la funció de devolució de trucada per a la finalització del programa. Cal tenir en compte que la devolució de trucada definida per register_shutdown_function s'executa després de finalitzar el programa, independentment de si hi ha un error en el procés. Per tant, en aquesta devolució de trucada, també hem de determinar si s’ha produït un error i, si s’ha produït un error, el registrarem al registre. Per obtenir més informació, consulteu el codi següent.
set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}
function shutdown_handler()
{
$error = error_get_last();
if (empty($error)) {
return;
}
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}