Treci la conținutul principal

PHP $GLOBALS

PHP păstrează un tablou numit $GLOBALS, care conține referințe către fiecare variabilă globală din scriptul tău.

Este una dintre variabilele superglobale, variabilele integrate la care poți ajunge de oriunde, indiferent de domeniul de vizibilitate.


Variabile globale

O variabilă globală este o variabilă la care are acces orice domeniu de vizibilitate.

Ca să creezi una nu ai nevoie de niciun pas special: tot ce creezi în domeniul cel mai exterior al unui script este global în mod automat și poate fi folosit din orice domeniu.

Funcțiile sunt excepția. Înainte ca o funcție să poată folosi o variabilă globală, trebuie să facă unul dintre aceste două lucruri: să declare variabila cu cuvântul cheie global sau să ajungă la ea prin $GLOBALS.

Referire la o variabilă globală cu $GLOBALS

Aici o funcție citește variabila globală $x prin $GLOBALS:

Prompt
Scrie un script PHP care creează o variabilă globală $x cu valoarea 75, apoi definește o funcție care folosește $GLOBALS pentru a afișa $x cu echo. Apelează funcția.
Ieșire: script PHP

Fără $GLOBALS

Dacă omiți $GLOBALS, funcția nu poate vedea variabila globală, așa că PHP nu îți dă nimic sau îți dă o eroare:

Prompt
Scrie un script PHP care creează o variabilă globală $x cu valoarea 75, apoi definește o funcție care încearcă să afișeze $x cu echo fără a folosi $GLOBALS sau cuvântul cheie global. Apelează funcția.
Ieșire: script PHP

Folosirea cuvântului cheie global

Cuvântul cheie global este cealaltă opțiune. Declari variabila cu el în interiorul funcției și de acolo încolo poți folosi numele simplu:

Prompt
Scrie un script PHP care creează o variabilă globală $x cu valoarea 75, apoi definește o funcție care folosește cuvântul cheie global pentru a accesa $x și a o afișa cu echo. Apelează funcția.
Ieșire: script PHP

Crearea variabilelor globale

Indiferent dacă scrii $GLOBALS sau nu, o variabilă creată la nivelul cel mai exterior al unui script devine globală.

Variabilele din domeniul exterior sunt globale

Această variabilă este creată la nivelul de sus și apoi citită de două ori, prin $GLOBALS și direct după nume. Ambele dau aceeași valoare:

Prompt
Scrie un script PHP care creează o variabilă $x cu valoarea 100, apoi o afișează cu echo folosind atât $GLOBALS['x'], cât și direct $x.
Ieșire: script PHP

Crearea unei variabile globale în interiorul unei funcții

În mod normal, o variabilă creată într-o funcție există doar în acea funcție. Scrierea în $GLOBALS schimbă acest lucru, deoarece noua intrare devine o variabilă globală pe care restul scriptului o poate folosi, așa cum se întâmplă aici cu $z:

Prompt
Scrie un script PHP care creează două variabile globale $x și $y, apoi definește o funcție care folosește $GLOBALS pentru a le aduna și a stoca rezultatul într-o nouă variabilă globală $z. Apelează funcția și afișează $z cu echo.
Ieșire: script PHP