PHP는 사전 정의된 수많은 변수를 제공합니다. 많은 변수가 실행 중인 서버의 버전 및 설정 등에 따라 달라지므로 자세한 문서는 제공되지 않습니다. 일부 사전 정의된 변수는 PHP가 명령줄에서 실행될 때 적용되지 않습니다.
경고
PHP 4.2.0 및 이후 버전에서는 PHP 지시문인 Register_globals의 기본값이 off입니다. 이는 PHP의 주요 변경 사항입니다. Register_globals를 off로 설정하면 사전 정의된 변수 세트의 전역 가용성에 영향을 줍니다. 예를 들어 DOCUMENT_ROOT 값을 얻으려면 $DOCUMENT_ROOT 대신 $_SERVER['DOCUMENT_ROOT']를 사용해야 합니다. 또 다른 예에서는 URL http://www에서 $id 대신 $_GET['id']를 사용해야 합니다. .example.com/test .php?id=3에서 id 값을 가져오거나 $HOME 대신 $_ENV['HOME']을 사용하여 환경 변수 HOME의 값을 가져옵니다.
초전역 배열과 같이 PHP에서 사전 정의된 변수를 사용할 수 있는 경우 가장 좋습니다.
PHP 4.1.0부터 PHP는 웹 서버(사용 가능한 경우), 런타임 환경 및 사용자 입력의 데이터를 포함하는 사전 결정된 배열 변수의 추가 세트를 제공합니다. 이러한 배열은 전역적으로 자동으로 적용된다는 점, 즉 모든 범위에서 자동으로 적용된다는 점에서 매우 특별합니다. 따라서 자동 전역 또는 슈퍼 전역이라고 불리는 경우가 많습니다. (PHP에는 사용자 정의 슈퍼 전역 변수에 대한 메커니즘이 없습니다.) 슈퍼 전역 변수는 아래에 나열되어 있지만 해당 내용과 PHP의 미리 정의된 변수 및 해당 특성에 대한 자세한 내용은 미리 정의된 변수를 참조하세요. 또한 이전에 미리 정의된 배열($HTTP_*_VARS)이 여전히 존재한다는 점도 알 수 있습니다. PHP 5.0.0부터, 긴 유형의 PHP 사전 정의 변수 배열은 Register_long_arrays 설정 옵션을 사용하여 비활성화할 수 있습니다.
참고: 변경 가능한 변수
수퍼 전역 변수는 함수나 클래스 메서드에서 변경 가능한 변수로 사용할 수 없습니다.
참고:
초전역 변수와 HTTP_*_VARS가 동시에 존재하더라도 동일한 변수는 아니므로 한 값을 변경해도 다른 변수에는 영향을 미치지 않습니다.
variables_order의 일부 변수가 설정되지 않은 경우 해당 PHP 사전 정의 배열도 비어 있습니다.