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 más gyéb tényezőktől. Néhány ilyen változó nem elérhető, ha a PHP parancssorból fut.
E tényezők ellenére az alábbi listában azok az előre definiált változók vannak felsorolva, amelyek a PHP 3 tipikus installálásakor elérhetők az Apache 1.3.6-ot használva.
Az összes előre definiált változó kilistázható, és sok más hasznos információt is közöl a phpinfo().
Megjegyzés: Ez a lista nem teljes, nem is ez a célja. Ez csak egy útmutató arról, hogy milyen típusú előre definiált változók lehetnek.
Ezek a változók az Apache webszerver változói. Ha másik szerveren fut a PHP, nincs rá garancia, hogy ugyanezek a változók akkor is rendelkezésre állnak: némelyik hiányozhat, esetleg itt nem szereplőket is biztosíthat a szerver. Számos a CGI 1.1 specifikációban dokumentált változókra biztosan lehet alapozni.
Figyelni kell arra, hogy ha a PHP parancssorból (command line) használva a változók töredékének van csak értelme, ha egyáltalán definiáltak ilyen esetben.
A server CGI specifikációjának verziója. Pl.: 'CGI/1.1'.
A gazdagép (host) neve, ami alatt a szkript fut. Ha a szkript virtuális host-on fut, a virtuális host neve.
Serverazonosító sztring, amely a kérésekre (request) adott válasz (response) fejlécében (header) szerepel.
Az oldal lekéréséhez használt protokoll neve és verziója pl. 'HTTP/1.0'
Az oldal eléréséhez használt kérési forma, pl.: 'GET', 'HEAD', 'POST', 'PUT'.
Keresési kérdés, az oldalt meghívó URL-ben a ? után szereplő rész, ha létezik.
A www dokumentumok főkönyvtára, amely alatt a jelenlegi szkript fut. Ez a szerver konfigurációs fájljában meghatározott érték.
Az aktuális kérés Accept: HTTP fejlécének tartalma, ha van ilyen. Ebben adja meg a böngésző, hogy milyen formátumokat képes fogadni.
Az aktuális kérés Accept-Charset: HTTP fejlécének tartalma, ha van ilyen. pl. 'iso-8859-1,*,utf-8'.
Az aktuális kérés Accept-Encoding: HTTP fejlécének tartalma, ha van ilyen. pl. 'gzip'.
Az aktuális kérés Accept-Language: HTTP fejlécének tartalma, ha van ilyen. pl. 'en'.
Az aktuális kérés Connection: HTTP fejlécének tartalma, ha van ilyen. pl. 'Keep-Alive'.
Az aktuális kérés Host: HTTP fejlécének tartalma, ha éppen van ilyen.
Annak az oldalnak az URL címe, ahonnan ide került a látogató. Ezt a látogató böngészőprogramja állítja be, de ezt nem minden böngésző és nem mindig teszi meg.
Az aktuális User_Agent: HTTP fejlécének tartalma, ha van ilyen. Ez a string, amely meghatározza az oldal megtekintéséhez használt böngészőt, pl. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Sok más mellett ezt az értéket a fel lehet használni arra, hogy a get_browser() fügvénnyel az aktuális böngésző képességeinek megfelelően lehessen kialakítani az oldal megjelenését.
Az az IP cím, ahonnan a látogató az oldalt lekérte.
A látogató gépén a webszerverrel való kommunikációhoz használt port száma.
A PHP szkript abszolút elérési útja a szerver gépen.
A SERVER_ADMIN a kiszolgáló konfigurációs fájl direktíva értéke (Apache alatt). Ha a szkript egy virtuális host-on fut, akkor ez a virtuális host-hoz rendelt érték.
A kiszolgálógépen a kiszolgáló kommunikációjában használt port száma. Alapértelmezés szerint ez a '80', de például SSL-t használva ez a biztonságos HTTP portnak a száma lesz.
A kiszolgáló verziószámát és a virtuális host-ot tartalmazó sztring, ha engedélyezett. Ez a szöveg jelenik meg minden szerver által generált oldal alján.
Hasonló értéket tartalmaz, mint a SCRIPT_NAME, de CGI verzió esetén ez jobb lehet az önhivatkozó kérdőívek készítésekor, mert egyes szervereken a SCRIPT_NAME tartalmazza a PHP bináris meghívási útvonalát is.
A szkript a fájlrendszer szerinti (nem a document root-hoz viszonyított!) elérési útja. Ezt a kiszolgáló a virtuális->valós átalakítás után határozza meg.
Az aktuális szkript elérési útja, ahogy az az URL-ben megjelenik. Hasznos a saját magukra mutató oldalakhoz.
Az az URI, amellyel az oldalt lekérték. pl. '/index.html'.
A PHP globális változói közé kerülnek a PHP feldolgozót futtató környezet változói. Számos változót a shell szolgáltat, ami alatt a PHP fut. Mivel más-más rendszerek más-más shell-eket használnak, ezért egy pontos lista összeállítása lehetetlen. A használt shell dokumentációjában nézz utána az előre definiált környezeti változóknak!
Más környezeti változók - beleértve a CGI változókat is - attól függően kerülnek be, hogy a PHP szerver modulként fut vagy CGI feldolgozóként.
Ezeket a PHP maga állítja elő. A $HTTP_*_VARS változók csak akkor állnak rendelkezésre, ha a track_vars be van kapcsolva. Ha engedélyezted ezt a beállítást, ezek a változók mindig létrejönnek, még ha üresek is. Ez nem engedi a rosszindulatú felhasználóknak, hogy meghamasítsák a változókat.
Megjegyzés: A PHP 4.0.3 verziótól kezdve a track_vars mindig be van kapcsolva, függetlenül a konfigurációs fájl beállításától.
Megjegyzés: Az új szuper globális (Superglobals) változók 4.1.0 verziótól használhatók. További részletekért lásd a 4.1.0 verzió bejelentését Ezek a $_GET, $_POST, $_ENV, $_SERVER, $_COOKIE, $_REQUEST $_FILES és a $_SESSION tömbök, amelyek fesztelen megfogalmazásban szuper globális jelzővel illetik, mivel minden esetben használhatók tekintet nélkül az aktuális érvényességi körre. Emiatt a régi, nekik megfelelő $HTTP_*_VARS tömbök használata már nem javasolt.
Ha a register_globals be van kapcsolva, ezek a változók globális változókként is létrejönnek, függetlenül a $HTTP_*_VARS tömböktől. Nézd meg idevonatkozó részletes információkért a biztonságról szóló Globálisan is elérhető változók (Register Globals) használata c. fejezetet!
A szkriptnek átadott argumentumok tömbje. Ha a szkript parancssor alól futtatjuk, ez egy C-szerű hozzáférést biztosít a parancssor argumentumokhoz. Ha GET metódussal hívjuk, az URL kérdőjel utáni részét (query string) tartalmazza.
A parancssori argumentumok számát tartalmazza (ha parancssorból futtatjuk).
A most futó szkriptfájl neve, a document root-hoz képest relatív alakban. Ha a PHP parancssorból fut, ez a változó nem elérhető. Ez a változó a kérés útvonal információját is tartalmazza, ha az létezik, azaz a $PHP_SELF a "http://example.com/test.php/foo.bar" címre a következőt fogja adni: "/test.php/foo.bar"
HTTP cookie-kat (sütiket) tartalmazó asszociatív tömb.
HTTP cookie-kat (sütiket) tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
HTTP GET metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb.
HTTP GET metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
HTTP POST metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb.
HTTP POST metódussal által szolgáltatott adatokat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
A HTTP POST metódussal feltöltött fájlokról tartalmaz információkat, asszociatív tömb. Lásd a POST metódusú feltöltések című részt további információkért a $HTTP_POST_FILES tartalmát és szerkezetét illetően. PHP 4.0.0-ban került a nyelvbe.
A HTTP POST metódussal feltöltött fájlokról tartalmaz információkat, asszociatív tömb. Lásd a POST metódusú feltöltések című részt további információkért a $_POST tartalmát és szerkezetét illetően. Minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
A szülő/futtató környezet aktuális változóit tartalmazó asszociatív tömb.
A szülő/futtató környezet aktuális változóit tartalmazó asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
A HTTP szervertől érkező változókkal feltöltött asszociatív tömb. Ezek a változók megfelelnek a fent említett Apache változóknak.
A HTTP szervertől érkező változókkal feltöltött asszociatív tömb, amely minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.
Az aktuális szkripthez tartozó session változókat tartalmazó asszociatív tömb.
Az aktuális szkripthez tartozó session változókat tartalmazó asszociatív tömb, amely minden hatókörben elérhető. A _SESSION tömbben új bejegyzések létrehozásával automatikusan regisztrálhatók értékek, mint a session_register() segítségével. PHP 4.1.0-ban került a nyelvbe.
A GET, POST és Cookie változókból összeállított asszociatív tömb. Más szóval, bármilyen a felhasználótól ügyféltől érkező adatot tartalmaz, ami biztonsági szempontból nem megbízható. Minden hatókörben elérhető. PHP 4.1.0-ban került a nyelvbe.