Reporting Errors

내부 함수에서 에러를 report할 때는 php3_error()함수를 사용하는 것이 좋다. 이 함수는 최소 두개의 인수를 가지고 호출된다. 첫번째는 에러의 level이고, 다른 하나는 에러 메세지를 위한 format string( printf()에서 사용되는 것과 같은 형태) 이다. 그리고 그 나머지는 주어진 format string의 parameter가 된다. 에러 level은 다음과 같다:

E_NOTICE

Notice는 기본적으로는 출력되지 않는다. 이것은 스크립트가 뭔가 에러를 감지했지만, 그것이 정상적인 상황에서 발생하는 것이라는 의미이다. 예를들어 설정되지 않은 변수를 사용하려 했거나, 존재하지 않는 파일에 stat()함수를 호출하는 것 등이다.

E_WARNING

Warning은 기본적으로 출력된다. 그러나, 스크립트의 실행을 멈추지는 않는다. 이것은 호출이 완료되기 전에 스크립트에 의해 잡혀져야 하는 문제를 가리킨다. 예를들어 잘못된 regular expression으로 ereg()를 호출하는 것 등이다.

E_ERROR

Error도 기본적으로 출력된다. 그리고, 함수의 실행이 완료된 직후, 스크립트의 실행을 멈춘다. 이것은 memory allocation 문제같은 복구가 불가능한 에러를 의미한다

E_PARSE

Parse error는 오직 Parser만이 생성가능하다. code가 list된다.

E_CORE_ERROR

PHP의 core에의해 생성된다는 점을 제외하고는 E_ERROR와 동일하다. 일반 함수로는 이 형태의 에러를 만들지 못한다.

E_CORE_WARNING

PHP의 core에의해 생성된다는 점을 제외하고는 E_WARNING와 동일하다. 일반 함수로는 이 형태의 에러를 만들지 못한다.

E_COMPILE_ERROR

이것은 E-Error랑 비슷하다, 예외적으로 Zend스크립팅 엔진에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.

E_COMPILE_WARNING

이것은 E_WARNING이랑 비슷하다. 예외적으로 Zend 스크립팅 엔진에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.

E_USER_ERROR

이것은 E_ERROR이랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.

E_USER_WARNING

이것은 E_WARNING이랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.

E_USER_NOTICE

이것은 E_NOTICE랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.