Учебник РНР
Назад Глава 7. Переменные Вперёд

Предопределённые переменные

В PHP имеется большое количество предопределённых переменных, доступных любому скрипту. Многие эти переменные, однако, невозможно полностью задокументировать, так как они зависят от сервера, на котором происходит работа, его версии и установок и других факторов. Некоторые из этих переменных будут недоступны при запуске РНР из командной строки. Список этих переменных см. в приложении Предопределённые переменные.

Предупреждение!

В PHP 4.2.0 и позднее, набор по умолчанию предопределённых переменных, доступных в глобальной области видимости, изменён. Отдельные переменные ввода и сервера по умолчанию больше не размещаются непосредственно в глобальной области видимости; они размещаются в суперглобальных массивах.

Вы можете форсировать старое поведение, установив register_globals в 'On' в вашем файле php.ini.

Дополнительно см. PHP 4.1.0 Release Announcement.

Начиная с версии 4.1.0, PHP предоставляет набор предопределённых массивов, содержащих переменные web-сервера (если они имеются), окружения и пользовательского ввода. Эти новые массивы более специализированы, так как автоматически являются глобальными - т.е. автоматически доступны в любой области видимости. Поэтому их часто называют 'автоглобалы' или 'суперглобалы'. (В PHP нет механизма реализации пользовательских суперглобалов.)
Суперглобалы перечислены ниже; см. также список их содержимого и обсуждение предопределённых переменных PHP и их природы в приложении Предопределённые переменные.

Если некоторые переменные в variables_order не установлены, их соответствующие суперглобальные массивы также остаются пустыми.

Суперглобалы PHP
$GLOBALS

Содержит ссылку на каждую переменную, доступную в данный момент в глобальной области видимости данного скрипта. Ключами этого массива являются имена глобальных переменных.

$_SERVER

Переменные, установленные web-сервером или как-либо иначе относящиеся к среде окружения выполнения текущего скрипта. Аналогичен старому массиву $HTTP_SERVER_VARS (который ещё доступен, но не рекомендуется).

$_GET

Переменные, предоставляемые скрипту через HTTP GET. Аналогичен старому массиву $HTTP_GET_VARS (который ещё доступен, но не рекомендуется).

$_POST

Переменные, предоставляемые скрипту через HTTP POST. Аналогичен старому массиву $HTTP_POST_VARS (который ещё доступен, но не рекомендуется).

$_COOKIE

Переменные, предоставляемые скрипту через HTTP cookies. Аналогичен старому массиву $HTTP_COOKIE_VARS (который ещё доступен, но не рекомендуется).

$_FILES

Переменные, предоставляемые скрипту через HTTP post-загрузку файлов. Аналогичен старому массиву $HTTP_POST_FILES (который ещё доступен, но не рекомендуется). См. дополнительно загрузка методом POST.

$_ENV

Переменные, предоставляемые скрипту через среду окружения. Аналогичен старому массиву $HTTP_ENV_VARS (который ещё доступен, но не рекомендуется).

$_REQUEST

Переменные, предоставляемые скрипту через любой механизм пользовательского ввода, и которым, следовательно, нельзя доверять.

Примечание: при запуске из командной строки этот массив не включит вхождения argv и argc; они представлены в массиве $_SERVER. Наличие и порядок включения переменных в этот массив определяются в соответствии с директивой конфигурации variables_order.
Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0.

$_SESSION

Переменные, зарегистрированные на данный момент в сессии скрипта. Аналогичен старому массиву $HTTP_SESSION_VARS (который ещё доступен, но не рекомендуется). См. также раздел Функции обслуживания сессий.


Назад Оглавление Вперёд
Переменные Вверх Область видимости переменной