Любому запускаемому скрипту PHP предоставляет большое количество предопределенных переменных. Однако многие из этих переменных не могут быть полностью задокументированы, поскольку они зависят от запускающего скрипт сервера, его версии и настроек, а также других факторов. Некоторые из этих переменных недоступны, когда PHP запущен из командной строки. Перечень этих переменных смотрите в разделе Зарезервированные предопределенные переменные.
PHP предоставляет дополнительный набор предопределенных массивов, содержащих переменные сервера (если они доступны), окружения и пользовательского ввода. Эти массивы являются особыми, поскольку они становятся глобальными автоматически - то есть, автоматически доступны в любой области видимости. По этой причине они также известны как 'автоглобальные' или 'суперглобальные' переменные. (В PHP нет механизма определяемых пользователем суперглобальных переменных.) О суперглобальных переменных можно прочитать здесь; однако, перечисление их содержимого и дальнейшее обсуждение предопределенных переменных PHP и их сути смотрите в разделе Зарезервированные предопределенные переменные.
Замечание:
До PHP 5.4, доступен старый способ доступа к информации связанной с HTTP-запросом, с помощью переменных HTTP_*_VARS. Эта возможность может быьт отключена с помощью директивы register_long_arrays начиная с PHP 5.0.0.
Замечание: Переменные переменных
Суперглобальные переменные не могут быть переменными переменных внутри функций или методов класса.
Если некоторые из переменных в variables_order не установлены, соответствующие им предопределенные массивы также останутся пустыми.