PHP는 몇개의 기본적인 상수들을 제공하고, 실행시 상수를 설정할 수 있는 메카니즘을 지원한다. 상수는 변수와 비슷하다. 그러나 define() 함수를 사용하여 선언한다는 것과 나중에 다른 값으로 바꿀 수 없다는 점이 차이가 있다.
미리 지정된 상수는 다음과 같다. :
현재 처리중인 스크립트의 파일명. 현재 파일이 include나 require로 포함된 파일이라면, include함수등을 호출한 부모 파일이 아닌, 포함된 파일의 이름을 가진다.
현재 처리중인 명령의 스크립트내에서의 라인 번호. 현재 파일이 include나 require로 포함된 파일이라면, include함수등을 호출한 부모 파일이 아닌, 포함된 파일내에서의 라인 번호를 가진다.
현재 사용중인 PHP 파서의 버전. (예 : '3.0.8-dev')
PHP 파서가 실행되고 있는 OS의 이름. (예 : 'Linux')
참(TRUE) 값
거짓(FALSE) 값
문법 오류를 제외한 복구가 불가능한 에러를 표시한다.
PHP가 어떤 계속 수행 가능한 오류를 감지 했음을 표시한다. 예를들어 ereg()에 regexp가 잘못된 경우 등이다.
파서가 스크립트 파일에서 문법적으로 잘못된 명령을 만난 경우이다. 복구는 불가능하다.
에러는 아니지만 어떤 알릴 사항이 있음을 나타낸다. 실행은 계속된다. 예를들어 hash 인덱스에 따옴표가 없는 문자열이 사용되었다던지, 이전에 선언되지 않은 변수의 값을 읽는다던지 하는 경우이다.
'E_'로 시작되는 상수의 역활은 거의 동일하다. 이 상수가 error_reporting()와 같이 쓰인다면 PHP에서의 발생되는 경고나 에러를 출력시키는 역활을 한다.
E_* 상수는 대개 error_reporting() 함수를 사용하여 reporting 레벨을 정할 때 흔히 사용된다. 이것에 관련된 모든 상수는 Error handling부분을 보라.
사용자는 define()함수를 사용하여 추가적인 상수를 정의할 수 있다.
주의할 점은 상수는 C에서의 macro 값은 것이 아니다. 단지 scalar 값을 가질 수 있을 뿐이다.