например, делаю так:
$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 - если наладить запись в лог всех ошибок и нотайсов: помогает хорошо, позволяет продуцировать правильно работающий код.
Нужно посчитать время до ближайшего нужного часа, период - каждые 6 часов, это 00, 6, 12, 18Выдать время до этого часа в секундах
Вношу данные в БД через форму в отдельном файле и методом POST отправляю ихНо почему-то данные в бд не появляются,что неправильно делаю? Помогите...