PHP rileva errori di livello FATALE
Riferimento ufficiale
Sito ufficiale set_error_handler register_shutdown_functionCome cogliere perfettamente tutti gli errori
set_error_handler può essere usato per catturare la maggior parte dei tipi di errore.Quando si incontra un errore di livello FATALE, poiché PHP termina direttamente l'operazione, la funzione di callback impostata da set_error_handler non può essere attivata. A questo punto, dobbiamo usare register_shutdown_function per impostare la funzione di callback per la terminazione del programma. Va notato che il callback impostato da register_shutdown_function viene eseguito dopo che il programma è terminato, indipendentemente dal fatto che ci sia un errore nel processo. Quindi, in questo callback, dobbiamo anche determinare se si è verificato un errore e, se si è verificato un errore, lo registreremo nel registro. Per i dettagli, fare riferimento al codice seguente.
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);
}