PHP, FATAL səviyyəsində səhvləri tutur
Rəsmi istinad
Rəsmi veb sayt set_error_handler register_shutdown_functionBütün səhvləri necə mükəmməl tutmaq olar
set_error_handler əksər səhv növlərini ələ keçirmək üçün istifadə edilə bilər.FATAL səviyyəsində bir səhvlə qarşılaşdıqda, PHP əməliyyatı birbaşa dayandırdığı üçün set_error_handler tərəfindən təyin olunan geri çağırma funksiyası işə salına bilməz. Bu anda, proqramın sonlandırılması üçün geri çağırma funksiyasını təyin etmək üçün register_shutdown_function istifadə etməliyik. Qeyd etmək lazımdır ki, register_shutdown_function tərəfindən təyin olunan geri çağırma, prosesdə bir səhv olub-olmamasından asılı olmayaraq proqram sona çatdıqdan sonra həyata keçirilir. Beləliklə, bu geri çağırışda bir səhvin olub olmadığını da müəyyənləşdirməliyik və bir səhv meydana gəlsə, onu jurnalda qeyd edəcəyik. Ətraflı məlumat üçün aşağıdakı kodu nəzərdən keçirin.
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);
}