내부 함수에서 에러를 report할 때는 php3_error()함수를 사용하는 것이 좋다. 이 함수는 최소 두개의 인수를 가지고 호출된다. 첫번째는 에러의 level이고, 다른 하나는 에러 메세지를 위한 format string( printf()에서 사용되는 것과 같은 형태) 이다. 그리고 그 나머지는 주어진 format string의 parameter가 된다. 에러 level은 다음과 같다:
Notice는 기본적으로는 출력되지 않는다. 이것은 스크립트가 뭔가 에러를 감지했지만, 그것이 정상적인 상황에서 발생하는 것이라는 의미이다. 예를들어 설정되지 않은 변수를 사용하려 했거나, 존재하지 않는 파일에 stat()함수를 호출하는 것 등이다.
Warning은 기본적으로 출력된다. 그러나, 스크립트의 실행을 멈추지는 않는다. 이것은 호출이 완료되기 전에 스크립트에 의해 잡혀져야 하는 문제를 가리킨다. 예를들어 잘못된 regular expression으로 ereg()를 호출하는 것 등이다.
Error도 기본적으로 출력된다. 그리고, 함수의 실행이 완료된 직후, 스크립트의 실행을 멈춘다. 이것은 memory allocation 문제같은 복구가 불가능한 에러를 의미한다
Parse error는 오직 Parser만이 생성가능하다. code가 list된다.
PHP의 core에의해 생성된다는 점을 제외하고는 E_ERROR와 동일하다. 일반 함수로는 이 형태의 에러를 만들지 못한다.
PHP의 core에의해 생성된다는 점을 제외하고는 E_WARNING와 동일하다. 일반 함수로는 이 형태의 에러를 만들지 못한다.
이것은 E-Error랑 비슷하다, 예외적으로 Zend스크립팅 엔진에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.
이것은 E_WARNING이랑 비슷하다. 예외적으로 Zend 스크립팅 엔진에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.
이것은 E_ERROR이랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.
이것은 E_WARNING이랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.
이것은 E_NOTICE랑 비슷하다. 예외적으로 PHP 함수trigger_error()를 이요하는 PHP코드에 의해 발생한다. 함수는 이 에러의 타입을 발생하지 않는다.