например, делаю так:
$var = ss; //неопределённая константа, например
file_put_contents('1.log', var_export(error_get_last(), true));
В итоге получаю null
Пример реального кода:
function error_handler($errno, $errstr, $errfile, $errline)
{
//...
}
function fatal_error_handler()
{
chdir($_SERVER['DOCUMENT_ROOT'] . '/dsm2.7f2_local/dsm2');
$error = error_get_last();
if ($error && $error['type'] == E_ERROR) {
sendErrorMessage('troopermanowar@gmail.com', 'Error', 'Fatal error!');
error_handler($error['type'], $error['message'], $error['file'], $error['line']);
}
}
function sendErrorMessage($email, $subject, $msg)
{
//...
}
error_reporting(-1);
ini_set('display_errors', 'off');
set_error_handler("error_handler");
register_shutdown_function('fatal_error_handler');
Есть в общем перехват любых ошибок кроме фаталов с помощью set_error_handler . Фатал можно перехватить с помощью register_shutdown_function . Есть ещё set_exception_handler - для особого типа ошибок "неперехваченные исключения". Перехватчики надо определить в начале программы - например с конструированием объекта вроде Logger.
Ну и вручную исключение перехватывается с помощью try{..}catch(Exception $e){/*перехват тут*/} - если не перехватывать, то перехватит set_error_handler или set_exception_handler , но надо помнить - что фаталы, нотайсы, стрикты (типы ошибок) - к исключениям не относятся, иногда и варнинги не относятся.
Вот и вся обработка ошибок в PHP - если наладить запись в лог всех ошибок и нотайсов: помогает хорошо, позволяет продуцировать правильно работающий код.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости