|
В 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
Переменные, предоставляемые скрипту через любой механизм пользовательского ввода,
и которым, следовательно, нельзя доверять/trust.
Примечание: при запуске из командной строки, это не включит/include вхождения argv
и argc; они представлены в массиве $_SERVER. Наличие и порядок включения
переменных в этот массив определяется в соответствии с директивой конфигурации
variables_order.
Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0.
- $_SESSION
Переменные, зарегистрированные на данный момент в сессии скрипта.
Аналогичен старому массиву $HTTP_SESSION_VARS (который ещё доступен, но не рекомендуется). См. также раздел
Функции обслуживания сессий.
| |