Domeniul de vizibilitate al variabilelor
In PHP o variabila poate fi accesata doar in contextul in care a fost definita. De exemplu, o variabila definita in interiorul unei functii nu va putea fi accesata decat de instructiunile din interiorul acelei functii. Mai mult, in mod implicit, o variabila definita in exteriorul unei functii nu va putea fi accesata in interiorul functiei chiar daca ea nu este redefinita in cadrul functiei.
Pentru ca o functie sa aiba acces la o variabila definita in afara ei, variabila trebuie redeclarata ca variabila globala in interiorul functiei.
Sa consideram urmatorul exemplu:
Pentru ca o functie sa aiba acces la o variabila definita in afara ei, variabila trebuie redeclarata ca variabila globala in interiorul functiei.
Sa consideram urmatorul exemplu:
Scriptul PHP
|
Rezultatul scriptului
|
<?php $a = 1; function test () { echo $a; } test (); ?> |
Eroare
|
Observam ca nu se afiseaza valoarea 1 deoarece instructiunea echo $a se refera la variabila locala $a care nu este definita, deci nu are nici o valoare. In continuare, este o versiune in care instructiunea echo $a va accesa variabila $a definita in afara functiei test ():
Scriptul PHP
|
Rezultatul scriptului
|
<?php $a = 1; function test () { global $a; echo $a; } test (); ?> |
1
|
O a doua posibilitate de a accesa o variabila definita in afara functiei este folosirea vectorului $GLOBALS:
Scriptul PHP
|
Rezultatul scriptului
|
<?php $a = 1; function test () { echo $GLOBALS ["a"]; } test (); ?> |
1
|
Niciun comentariu:
Trimiteți un comentariu