Set_error_handler - встановлює призначений для користувача обробник помилок

(PHP 4> = 4.0.1, PHP 5)

set_error_handler - встановлює призначений для користувача обробник помилок.

string set_error_handler (string error_handler)

Встановлює для користувача функцію (error_handler) для обробки помилок в скрипті.

Повертає раніше певний оброблювач помилок (якщо є), FALSE при помилці.

Ця функція може використовуватися для визначення вашого власного способу обробки помилок на етапі прогону, наприклад, в додатках, в яких вам потрібно зачистити дані / файли при виникненні критичних помилок, або якщо вам потрібно переключити помилку при певних умовах (використовую trigger_error ()).

Примітка: наступні типи помилок не можуть бути оброблені користувальницької функцією: E_ERROR. E_PARSE. E_CORE_ERROR. E_CORE_WARNING. E_COMPILE_ERROR і E_COMPILE_WARNING.

список параметрів

error_handler - призначена для користувача функція наступного виду:

handler (int errno, string errstr [, string errfile [, int errline [, array errcontext]]])

Користувацька функція повинна приймати 2 параметра: error-код і рядок з описом помилки. Починаючи з PHP 4.0.2, надаються додаткові 3 параметри: ім'я файлу, в якому з'явилася помилка, номер рядка, в якій з'явилася помилка, і контекст, в якому з'явилася помилка (масив, який вказує на активну таблицю символів в точці виникнення помилки).

значення, що повертаються

Повертає раніше певний оброблювач помилок (якщо є), FALSE при помилці.

Наступний приклад показує обробку внутрішніх винятків шляхом перемикання помилок і обробки їх користувальницької функцією:

Приклад 1. Обробка помилок за допомогою set_error_handler () і trigger_error ()

А коли ви запустите це скрипт-семпл:

vector a Array ([0] => 2 [1] => 3 [2] => foo [3] => 5.5 [4] => 43.3 [5] => 21.11) ---- vector b - a warning (b = log (PI) * a) WARNING [1024] Value at position 2 is not a number, using 0 (zero)
Array ([0] => 2.2894597716988 [1] => 3.4341896575482 [2] => 0 [3] => 6.2960143721717 [4] => 49.566804057279 [5] => 24.165247890281) ---- vector c - an error ERROR [ 512] Incorrect input vector, array of values ​​expected
NULL ---- vector d - fatal error FATAL [256] log (x) for x