Előre definiált változók
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 https://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.
-
PHP szuperglobális változók
- $GLOBALS
- Minden olyan változóhoz tartalmaz egy referenciát, amely pillanatnyilag a szkript globális hatáskörében létezik. Ennek a tömbnek a kulcsai a globális változók nevei. A $GLOBALS tömb a PHP 3-tól létezik.
- $_SERVER
- Olyan változók amelyeket a webszerver állÃtott be vagy amelyek szorosan összefüggenek a szkript futtatási környezetével. Analógiája a régebbi $HTTP_SERVER_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott).
- $_GET
- HTTP GET kérés által létrejövő változók. Analógiája a régebbi $HTTP_GET_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott).
- $_POST
- HTTP POST kérés által létrejövő változók. Analógiája a régebbi $HTTP_POST_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott).
- $_COOKIE
- HTTP sütikből (cookie) származó változók. Analógiája a régebbi $HTTP_COOKIE_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott).
- $_FILES
- HTTP post fájlfeltöltés által létrejövÅ‘ változók. Analógiája a régebbi $HTTP_POST_FILES tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott). További információ a POST tÃpusú fájlfeltöltésrÅ‘l szóló fejezetben.
- $_ENV
- A környezetből származó változók. Analógiája a régebbi $HTTP_ENV_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott).
- $_REQUEST
-
HTTP GET, POST és COOKIE bementekből származó változók, azaz
amelyekben nem lehet megbÃzni. A jelenléte és a változók tömbbe
való besorolásának sorrendje
a PHP variables_order
konfigurációs direktÃvája szerint van definiálva. Ennek nincs
közvetlen
analógiája a PHP 4.1.0-nál előbbi verzióiban.
Lásd még: import_request_variables().
Caution
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.
- $_SESSION
- Olyan változók, amelyek a szkript munkamanetéhez vannak rendelve. Analógiája a régebbi $HTTP_SESSION_VARS tömbnek (amely még mindig rendelkezésre áll, de használata nem ajánlott). További információért lásd a Munkamenet kezelÅ‘ függvények cÃmű részt.