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ż 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 Zmienne nadchodzące metodą GET i POST oraz zmienne serwera domyślnie nie już umieszczane w zasięgu globalnym . Zamiast tego umieszczane 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 dość specyficzne , gdyż 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 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 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 one godne zaufania . Uwaga : kiedy skrypt jest uruchomiony z linii poleceń , tablica ta nie zawiera zmiennych argv i argc . Zmienne te 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 .