У меня есть php-файл, доступ к которому осуществляется только через ajax. Вызов ajax ожидает только данные, отформатированные как вывод json_encode
d. Я пытаюсь создать пользовательскую функцию-обработчик ошибок, которая перехватывает php-ошибки и вместо того, чтобы выводить их напрямую, вместо этого передает их в массив, который они закодированы для анализатора json.
Пока у меня есть
// error handler function
function handleErrors($errno, $errstr, $errfile, $errline)
{
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting
return;
}
$response['php_error'][] = "Error [$errno] - $errstr on line $errline in file $errfile";
/* Don't execute PHP internal error handler */
return true;
}
set_error_handler("handleErrors");
//do other stuff that might trigger php errors
if ($result===true){
$response['success'] = true;
}else{
$response['success'] = false;
$response['error'] = $result;
$response['request'] = json_encode($_REQUEST);
}
echo json_encode($response);
Моя проблема в том, что массив $response
находится вне области видимости для доступа к остальной части документа, поэтому он будет выводиться в объекте json. Есть ли способ передачи переменной по ссылке в пользовательскую функцию или другой способ, который я пропустил?