Mengendalikan Fatal PHP (E_ERROR) Ralat
Masalah:
Jika ralat maut berlaku dalam skrip PHP, seperti memanggil fungsi yang tidak wujud, ralat tidak boleh ditangkap menggunakan set_error_handler() fungsi. Bagaimanakah anda boleh mengendalikan ralat kritikal ini?
Penyelesaian:
Untuk menangkap ralat maut dalam PHP 5.2 , gunakan fungsi register_shutdown_function():
register_shutdown_function("fatal_handler"); function fatal_handler() { $errfile = "unknown file"; $errstr = "shutdown"; $errno = E_CORE_ERROR; $errline = 0; $error = error_get_last(); if ($error !== NULL) { $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
Anda perlu melaksanakan fungsi error_mail() dan format_error(), untuk contoh:
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = " <table> <thead><th>Item</th><th>Description</th></thead> <tbody> <tr> <th>Error</th> <td><pre class="brush:php;toolbar:false">$errstr
$errno
$trace
Untuk menghantar e-mel, gunakan Swift Mailer untuk menentukan fungsi error_mail().
Sumber Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menangani Ralat PHP Maut (E_ERROR) dalam PHP 5.2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!