
`set_error_handler` 함수를 호출하면 PHP가 기본 오류 핸들링 함수를 대체하여 사용하는 오류 핸들링 함수를 설정합니다. 이 함수를 호출한 후 `restore_error_handler` 함수를 호출해야 하는 이유는, PHP가 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 다시 활성화 시켜야 하기 때문입니다.
`restore_error_handler` 함수를 호출하지 않으면, 오류 핸들링 함수를 호출한 후에 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 다시 활성화하지 못하게 되며, 이는 PHP가 오류 핸들링을 위해 사용하는 기본 오류 핸들링 함수를 계속해서 대체하여 사용하게 됩니다. 이로 인해 오류 핸들링이 제대로 작동하지 않을 수 있습니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
function custom_error_handler($errno, $errstr, $errfile, $errline) {
echo "오류 발생 : $errstr ($errno)";
}
set_error_handler('custom_error_handler');
trigger_error('오류 테스트', E_USER_ERROR);
restore_error_handler();
이 코드에서 `custom_error_handler` 함수를 호출한 후 `restore_error_handler` 함수를 호출하여 PHP의 기본 오류 핸들링 함수를 다시 활성화합니다. 이로 인해 오류 핸들링이 제대로 작동합니다.
반면에 `restore_error_handler` 함수를 호출하지 않은 경우, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
function custom_error_handler($errno, $errstr, $errfile, $errline) {
echo "오류 발생 : $errstr ($errno)";
}
set_error_handler('custom_error_handler');
trigger_error('오류 테스트', E_USER_ERROR);
이 코드에서 `custom_error_handler` 함수를 호출한 후 `restore_error_handler` 함수를 호출하지 않습니다. 이로 인해 PHP의 기본 오류 핸들링 함수가 계속해서 대체되어 사용하게 되며, 오류 핸들링이 제대로 작동하지 않을 수 있습니다.
2025-05-13 00:27