나는 아약스를 통해서만 액세스 할 수있는 PHP 파일이 있습니다. 아약스 호출은 json_encode
d 출력 형식의 데이터 만 필요합니다. 나는 PHP 에러를 잡아내는 커스텀 에러 핸들러 함수를 만들려고 노력하고 있는데, 대신 직접 출력하는 것이 아니라 json 파서를 위해 인코딩 된 배열에 전달한다.error_handler에서 변수에 액세스
은 지금까지 나는
// 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);
내 문제는 JSON 객체에서 출력됩니다 있도록 $response
배열이 액세스 문서의 나머지 부분에 대한 범위를 벗어난 것입니다 있습니다. 참조로 변수를 사용자 지정 함수 또는 다른 방법으로 간과 할 수있는 방법이 있습니까? 당신은 OOP의 맥락에서 $ GLOBALS
$GLOBALS['response']['php_error'][] = "Error [$errno] - $errstr on line $errline in file $errfile";
그래서이 함수를 '실행'하기 위해서는'$ foo = new myClass(); $ foo-> outputAjax();'? 나는 PHP의 클래스에 관해서는 꽤 새로운 것이다. –
너는 그것을 가지고있다. (그리고 $ globals은 악하다) –
고마워, 나는 그들의 존재를 다시는 알지 못할 것이다. :) –