Podręcznik PHP
Poprzedni | Rozdział 7. Zmienne | Następny

# Zmienne predefiniowane

PHP udostępnia dla każdego pracującego skryptu dużą ilość predefiniowanych zmiennych. Jednakże wiele spośród tych zmiennych nie może być w pełni objaśnionych, gdyż są zależne od rodzaju serwera, jego wersji i ustawień i innych czynników. Niektóre z tych zmiennych nie będą dostępne dla skryptów PHP uruchomionych z linii poleceń. Lista tych zmiennych znajduje się w rozdziale predefiniowane zmienne.

Ostrzeżenie
W PHP 4.2.0 i późniejszych, domyślne ustawienie, które udostępniało predefiniowane zmienne w zasięgu globalnym, zostało zmienione. Zmienne nadchodzące metodą GET i POST oraz zmienne serwera domyślnie nie są już umieszczane w zasięgu globalnym. Zamiast tego umieszczane są w odpowiednich tablicach superglobalnych. Nadal można uruchomić udostępnianie tych zmiennych w zasięgu globalnym przez ustawienie dyrektywy konfiguracyjnej register_globals na "On" w pliku `php.ini`. Więcej informacji odnośnie tej zmiany, wraz z wyjaśnieniem przyczyn, w PHP 4.1.0 Release Announcement.

Począwszy od wersji 4.1.0, PHP udostępnia zestaw predefiniowanych tablic, które zawierają zmienne serwera, zmienne środowiskowe oraz zmienne użytkownika. Tablice te są dość specyficzne, gdyż są one automatycznie globalne, tzn. automatycznie dostępne w każdym zasięgu. Dlatego nazywa się je "autoglobalami" albo "superglobalami". (W PHP nie ma mechanizmu pozwalającego użytkownikowi na definiowanie własnych superglobali.) Superglobale PHP wymienione są poniżej, jednakże wykaz ich zawartości i głębsze omówienie prefiniowanych zmiennych PHP oraz ich natury znajduje się w rozdziale predefiniowane zmienne.

Superglobale PHP

$GLOBALS

  Zawiera referencje do każdej ze zmiennych aktualnie dostępnych w zasięgu globalnym skryptu. Kluczami tablicy są nazwy zmiennych globalnych.

$_SERVER

  Zmienne tworzone przez serwer lub bezpośrednio powiązane ze środowiskiem uruchomieniowym danego skryptu. Analogiczna do dawnej tablicy `$HTTP_SERVER_VARS` (która jest nadal dostępna, ale uznana za przestarzałą).

$_GET

  Zmienne dostarczone do skryptu za pomocą metodą GET protokołu HTTP. Analogiczna do dawnej tablicy `$HTTP_GET_VARS` (która jest nadal dostępna, ale uznana za przestarzałą).

$_POST

  Zmienne dostarczone do skryptu metodą POST protokołu HTTP. Analogiczna do dawnej tablicy `$HTTP_POST_VARS` (która jest nadal dostępna, ale uznana za przestarzałą).

$_COOKIE

  Zmienne dostarczone do skryptu przez ciasteczka HTTP. Analogiczna do dawnej tablicy `$HTTP_COOKIE_VARS` (która jest nadal dostępna, ale uznana za przestarzałą).

$_FILES

  Zmienne dostarczone do skryptu przez przesłanie plików do serwera metodą POST protokołu HTTP. Analogiczna do dawnej tablicy `$HTTP_POST_FILES` (która jest nadal dostępna, ale uznana za przestarzałą). Więcej na ten temat w rozdziale przesyłanie plików metodą POST.

$_ENV

  Zmienne dostarczone do skryptu przez środowisko operacyjne. Analogiczna do dawnej tablicy `$HTTP_ENV_VARS` (która jest nadal dostępna, ale uznana za przestarzałą).

$_REQUEST

  Zmienne użytkownika dostarczone do skryptu przez każdy mechanizm wejścia, przez co NIE są one godne zaufania. Uwaga: kiedy skrypt jest uruchomiony z linii poleceń, tablica ta nie zawiera zmiennych `argv` i `argc`. Zmienne te są dostępne w tablicy `$_SERVER`. Obecność i kolejność dołączania zmiennych do tej tablicy zależy od dyrektywy konfiguracyjnej variables_order. Tablica ta nie posiada swoich odpowiedników we wcześniejszych wersjach PHP.

$_SESSION

  Zmienne aktualnie zarejestrowane jako sesyjne. Analogiczne do dawnej tablicy `$HTTP_SESSION_VARS` (która jest wciąż dostępna, ale uznana za przestarzałą). Więcej informacji w rozdziale funkcje obsługi sesji.

Poprzedni | Spis treści | Następny
Zmienne | Początek rozdziału | Zasięg zmiennych