Mots clés : phperror-handlingfatal-errorphp
97
function shutdown() { $error = error_get_last(); if ($error['type'] === E_ERROR) { // fatal error has occured } } register_shutdown_function('shutdown'); spl_autoload_register('foo'); // throws a LogicException which is not caught, so triggers a E_ERROR
88
function fatal_error() { if ( ! defined(PROGRAM_EXECUTION_SUCCESSFUL)) { // fatal error has occurred } } register_shutdown_function('fatal_error'); define('PROGRAM_EXECUTION_SUCCESSFUL', true);
80
<?php register_shutdown_function('__fatalHandler'); function __fatalHandler() { $error = error_get_last(); //check if it's a core/fatal error, otherwise it's a normal shutdown if($error !== NULL && $error['type'] === E_ERROR) { //Bit hackish, but the set_exception_handler will return the old handler function fakeHandler() { } $handler = set_exception_handler('fakeHandler'); restore_exception_handler(); if($handler !== null) { call_user_func($handler, new ErrorException($error['message'], $error['type'], 0, $error['file'], $error['line'])); } exit; } } ?>
<?php ini_set('display_errors', false); ?>