Doseg ili vidljivost varijable određuje na kojim će mjestima unutar skripte biti dostupna varijabla, odnosno vrijednost koju sadržava.
Varijable po njihovom dosegu moguće je podijeliti na tri vrste:
Lokalne varijable vidljive su samo unutar funkcije u kojoj se koriste.
U sljedećem primjeru varijabla $a u funkciji neće imati veze s varijablom $a koja se koristi u ostatku skripte.
function Ispisi()
{
$a = 2;
echo $a;
}
$a = 1;
Ispisi();
Pod lokalne varijable spadaju i argumenti funkcije, koji neće imati veze s eventualnim istoimenim varijablama u ostatku skripte.
Globalne varijable su varijable definirane izvan funkcija. One su vidljive unutar cijele datoteke (i svih uključenih datoteka), ali ne i unutar funkcija.
Ako se globalna varijabla želi koristiti unutar funkcije, potrebno ju je definirati kao globalnu varijablu pomoću ključne riječi global.
function Ispisi()
{
global $a;
echo $a;
}
$a = 1;
Ispisi();
Predefinirane globalne varijable, koje se nazivaju i superglobalnim varijablama, su polja dostupna na bilo kojem mjestu u svim skriptama.
U polju $GLOBALS, koje je dostupno u svim skriptama, nalazit će se globalne varijable definirane u trenutnoj skripti.
Pojedinom članu tog polja pristupa se preko znakovnog ključa – imena varijable.
Pomoću tog polja može se pristupiti globalnim varijablama i unutar funkcije:
function Ispisi()
{
echo $GLOBALS["a"];
}
$a = 1;
Ispisi();
Osim polja $GLOBALS postoje i druge predefinirane globalne varijable.
Radi se poljima koja sadrže vrijednosti vezane za postavke poslužitelja, HTTP zahtjeva i slično. Ova polja također imaju znakovne ključeve preko kojih se pristupa pojedinoj vrijednosti.
U globalno dostupnom polju $_SERVER nalaze se vrijednosti vezane za web poslužitelja. Pomoću njega, u svakoj se skripti može pristupiti IP adresi poslužitelja i portu kojim se poslužitelj koristi:
echo $_SERVER["SERVER_ADDR"]; //127.0.0.1
echo "<br/>";
echo $_SERVER["SERVER_PORT"]; //80
U sljedećoj tablici dan je pregled predefiniranih globalno dostupnih polja:
| Polje | Opis |
|---|---|
| $GLOBALS | vrijednosti globalnih varijabli iz trenutne skripte |
| $_SERVER | vrijednosti postavljene od strane web posluţitelja |
| $_ENV | vrijednosti iz okruženja u kojem je instaliran PHP |
| $_GET | vrijednosti dostupne u URL-u trenutne stranice |
| $_POST | vrijednosti prenešene u HTTP zahtjevu metodom POST |
| $_COOKIE | vrijednosti zapisane u kolačićima (tekstualnim datotekama koje web preglednik sprema na korisnikovom računalu) |
| $_REQUEST | vrijednosti iz polja $_GET, $_POST i $_COOKIE |
| $_FILES | vrijednosti koje se odnose na datoteke poslane na poslužitelj |