Помогите разобраться. Делаю простейший обработчик ошибок
<?php
echo '0000<br>';
ini_set('error_reporting', E_ALL);
function errorHandler($errno, $errstr='', $errfile='', $errline=''){
echo 'errorHandler<br>';
}
function obError($str){
$err=error_get_last();
if($err){
return 'obError<br>'.$err['message'].'<br>File: '.$err['file'].'<br>Line: '.$err['line'].'<br>';
}else{
return $str;
}
}
set_error_handler('errorHandler', E_ALL);
ob_start('obError');
echo '1111<br>';
func();
ob_end_flush();
echo '2222<br>';
где func() - несуществующая функция
открываю страницу в браузере и получаю
0000
obError
Call to undefined function func()
File: E:\Hosts\localhost\www\test.php
Line: 24
все ок. Обработчик сработал.
Удаляю строчку с несуществующей функцией, обновляю страницу и получаю
0000
obError
Call to undefined function func()
File: E:\Hosts\localhost\www\test.php
Line: 24
2222
Вот сижу и немогу понять почему так происходит. Получается, что функция error_get_last() возвращает ошибку не текущего запроса, а последнюю в текущей сессии?..