A PHP egy számos előre definiált változót biztosít az bármely futó szkript számára. Sokat ezek közül nem lehet teljes pontossságal dokumentálni, mert függnek a a futtató szervertől, a használt verziótól, a konfigurálástól, és egyéb tényezőktől. Néhány ilyen változó nem elérhető, ha a PHP parancssorból fut. Ezen változókról találsz egy listát Fenntartott előredefiniált változók c. részben.
A PHP 4.2.0 és későbbi verzióiban a register_globals direktíva alapértelmezett értéke off. Ez a PHP-nek egy jelentős változása. A register_globals off-ra állítása befolyásolja az előredefiniált változók készletét a globális hatáskörben. Például a DOCUMENT_ROOT lekéréséhez a $_SERVER['DOCUMENT_ROOT'] formát kell használnod $DOCUMENT_ROOT helyett, vagy http://www.pelda.hu/teszt.php?id=3 URL esetén $_GET['id']-t az $id helyett, vagy $_ENV['HOME'] alakot a $HOME helyett.
Több információért olvasd el a register_globals-ról szóló bejegyzést, a biztonságról szóló fejezetben a Register Globals használatáról szóló részt, valamint a PHP » 4.1.0 és » 4.2.0 verzióinak bejelentését.
A PHP-ben rendelkezésre álló fenntartott előredefiniált változók, mint például a szuperglobális tömbök használata ajánlottabb.
A 4.1.0-s verziótól a PHP további előredefiniált tömböket biztosít, amelyek webszerverektől (ha van), környezetből, és felhasználótól származó változókat tartalmaznak. Ezek az új tömbök elég sajátosak, mivel automatikusan globálisak, azaz automatikusan rendelkezésre állnak minden hatáskörben. Ezért gyakran nevezik ezeket 'autoglobálisn' vagy 'szuperglobális' tömböknek. (A felhasználónak nincs lehetősége szuperglobális változók definiálására.) A szuperglobális tömbök alább vannak felsorolva; viszont a PHP előredefiniált változóinak tartalma és természetüknek tárgyalása a Fenntartott előredefiniált változók című részben olvasható, ahol a régebbi előredefiniált változók ($HTTP_*_VARS) létezéséről is tudomást szerezhetsz. Az 5.0.0 változattól kezdődően az előre definiált hosszú PHP változók létrehozása kikapcsolható a register_long_arrays direktíva segítségével.
Note: Változó változók A szuperglobális változók nem használhatók változó változókként függvényekben és osztályok metódusaiban.
Note: Annak ellenére, hogy egyidőben létezhet a szuperglobális és a HTTP_*_VARS tömb, ezen nem azonosak, tehát az egyiknek a módosítása nem változtatja meg a másikat is.
Ha bizonyos változók nincsenek megjelölve a variables_order-ben akkor a megfelelő PHP előredefiniált tömbök üresek.
A PHP 4.3.0 óta a $_FILES-ban szereplő fájlinformációk nem szerepelnek a $_REQUEST-ben.
Note: Parancssori futtatás esetén ez nem tartalmazza az argv and argc bejegyzéseket; ezek a $_SERVER tömbben szerepelnek.