Opseg PHP varijable. Sve što ste htjeli znati, ali ste se bojali pitati. Varijable u PHP-u Prikaz vrijednosti varijable na ekranu

Varijable okruženja (okolina) u sustavu Windows sadrže različite informacije o postavkama sustava i korisničkom okruženju. Razlikovati varijable okoline korisnika, sustava i procesa.

Najlakši način za pregled sadržaja varijabli okruženja u sustavu Windows je otvaranje svojstava sustava ( sysdm.cpl) -> Napredno -> Varijable okruženja. Kao što vidite, u otvorenom odjeljku postoje dva odjeljka: gornji sadrži varijable korisničkog okruženja, a donji sadrži varijable sustava.

Dodatno, varijable okruženja pohranjene su u registru sustava. Prilagođene varijable pohranjene su u odjeljku. Sustavno - u HKLM \ SYSTEM \ CurrentControlSet \ Control \ Upravitelj sesija \ Okolina.

Možete prikazati vrijednosti svih varijabli okruženja u naredbenom retku sustava Windows. Naredba je jednostavna:

Naredba će prikazati varijable okruženja i njihove vrijednosti.

U PowerShell-u možete koristiti naredbu za prikaz svih varijabli okruženja:

Ako želite ispisati vrijednost samo jedne varijable, trebate upotrijebiti naredbu echo, a naziv varijable mora biti zatvoren u znakovima postotka. Na primjer,

Echo% systemroot%

set> c: \ tmp \ env_var.txt

Varijable okruženja specifične za proces mogu se dobiti korištenjem besplatnog Uslužni programi Process Explorer(iz Sysinternalsa). Dovoljno je otvoriti svojstva procesa i otići na karticu Okoliš.

PHP varijable je vrsta informacijskog spremnika koji može sadržavati različite vrste podataka (tekst, brojeve, nizove i tako dalje). Općenito, varijable vam omogućuju stvaranje, pohranjivanje, izmjenu i u budućnosti brz pristup informacijama navedenim u njima.

Kako stvoriti varijablu u PHP-u

U početku, varijable sadrže znak $ (dolar) - oznaka upotrebe varijable, zatim slova latinica(od a do z i male i velike), na kraju može sadržavati brojevima... Također, ime je dopušteno koristiti donju crtu (ne na kraju).

Kako se varijable mogu imenovati:

$ var
$ varijabla
godine 1945
$ _varijable
Kako se varijable ne mogu pozvati:

1 $ - sastoji se samo od znamenke
$ 1var - ne možete započeti naziv varijable s znamenkom
$ / var - dopuštene su samo donje crte od dodatnih znakova _
$ varijabla - ćirilica dopuštena php dokumentacijom, ali se ne preporučuje
$ varijabilno - razmaci se ne mogu koristiti

Svakoj varijabli dodjeljuje se vrijednost. Za dodjelu vrijednosti koristite znak = (jednako). Tijekom obrade skripte, vrijednost varijable može se više puta mijenjati ovisno o različitim uvjetima.

$ city = "Moskva"; // varijabli $ city je dodijeljena vrijednost niza (u navodnicima) Moskva
$ godina = 1147; // i varijabli $ year dodijeljena je brojčana vrijednost 1147
?>

$ name = "Aleksandar";
$ Ime = "Aleksej";
echo "$ ime, $ Ime"; // prikazuje "Aleksandar, Aleksej"
?>

PHP varijabilni izlaz

Zasebno, trebali biste razmotriti kako prikazati varijable pomoću izlazni operateri, čiji smo rad ispitali u prošloj lekciji, Izrada PHP stranice. Izlazni operatori. ... U nastavku ću dati niz ilustrativnih primjera s komentarima.

// Ovako dodjeljujemo vrijednosti varijablama
$ name1 = "Aleksej";
$ name2 = "Aleksandar";

// Prikaz varijabli
echo $ name2; // Izlaz: Aleksandar
echo "ime1 je $ ime1"; // ime1 je Aleksej

// Kada koristite jednostruke navodnike, izlaz je
// ime varijable, a ne vrijednost
echo "ime1 je $ ime1"; // ispisuje: ime1 je $ime1

// možete jednostavno prikazati vrijednosti varijabli
echo $ name1; // Aleksej
eho $ ime1, $ ime2; // Aleksej Aleksandar
echo $ name1. "". $ name2; // Aleksej Aleksandar
echo "$ ime1, $ ime2"; // Aleksej, Aleksandar

Jeka<<Ovo koristi sintaksu "ovdje dokument" za izlaz
više redaka sa zamjenom varijable $.
KRAJ;

PHP operacije varijabli

Aritmetičke operacije u PHP-u
U slučaju brojčanih vrijednosti, možete izvoditi aritmetičke operacije: zbrajanje, oduzimanje, množenje i tako dalje.

- $ a(negacija) Promijenite predznak $ a.
$ a + $ b(zbrajanje) Zbroj $ a i $ b.
$ a - $ b(oduzimanje) Razlika između $ a i $ b.
$ a * $ b(množenje) Umnožak $ a i $ b.
$ a / $ b(podjela) Kvocijent od $ a podijeljen s $ b.
$ a% $ b(modulo dijeljenje) Cjelobrojni ostatak od $ a podijeljen s $ b.
Pogledajmo primjere

$ a = 2; // napomena, u slučaju brojeva, navodnici se ne koriste
$ b = 3; // napomena, u slučaju brojeva, navodnici se ne koriste

$ rezultat = $ a + $ b; // dodaj varijable
echo $ rezultat; // će ispisati 5

$ rezultat = $ b - $ a; // dodaj varijable
echo $ rezultat; // će ispisati 1

Operacije povećanja i smanjenja u PHP-u
Ove će operacije biti korisne uglavnom kod konstruiranja petlji, o čemu ćemo govoriti nešto kasnije.
Prefiks- operatori napisani PRIJE varijable ( - $ a; ++ $ a). Vraća vrijednost varijable prije promjene.
Postfix- operatori napisani nakon varijable ( $ a--; $ a--). Vraća izmijenjenu vrijednost varijable.
Povećanje- povećanje vrijednosti.
Smanjenje- smanjenje vrijednosti.

++ $ a Povećanje prefiksa. Povećava $ a za jedan i vraća vrijednost $ a.
$ a ++ Postfix prirast. Vraća vrijednost $ a i zatim povećava $ a za jedan.
- $ a Dekrement prefiksa. Smanjuje $ a za jedan i vraća vrijednost $ a.
$ a-- Postfiksni dekrement. Vraća vrijednost $ a i zatim smanjuje $ a za jedan.
jeka "

Postfix prirast

";
$ a = 5;
echo "Trebalo bi biti 5:". $ a ++. "\ n";

Jeka "

Povećanje prefiksa

";
$ a = 5;
echo "Trebalo bi biti 6:". ++ $ a. "\ n";
echo "Trebalo bi biti 6:". $ a. "\ n";

Jeka "

Postfiksni dekrement

";
$ a = 5;
echo "Trebalo bi biti 5:". $ a--. "\ n";

Jeka "

Dekrement prefiksa

";
$ a = 5;
echo "Trebalo bi biti 4:". - $ a. "\ n";
echo "Trebalo bi biti 4:". $ a. "\ n";
?>

PHP operacije dodjele
Osnovni operator izgleda kao = ... Na prvi pogled može se činiti da je ovaj operator jednak. Zapravo, to nije slučaj. U stvari, operator dodjele znači da je lijevi operand postavljen na vrijednost desnog izraza (to jest, postavljen je na rezultirajuću vrijednost). Kombinirani operatori- to su operatori koji vam omogućuju korištenje prethodnih vrijednosti varijabli za sljedeće operacije (dodavanje varijabli niza (s tekstom) ili dodavanje numeričkih vrijednosti).

$ a = ($ b = 2) + 4; // rezultat: $ a je postavljeno na 6, $ b je postavljeno na 2.

$ a = 2;
$ a + = 3; // postavlja $ a na 5, slično pisanju: $ a = $ a + 3;
$ b = "Pozdrav";
$ b. = "Mir!"; // postavlja $ b na "Hello World!" kao i $ b = $ b. "Tamo!";

Postoje također operacije usporedbe i mozgalica, ali o njima ćemo govoriti u sljedećim lekcijama. Pokušat ću vas odmah ne uplašiti velikom količinom informacija!)

Sigurno kod kuće imate ormar ili komodu. Načelo njihove uporabe je jednostavno: tamo stavljamo stvari koje nam trenutno ne trebaju, ali će nam zatrebati nakon nekog vremena.

Varijable rade na isti način. Možete staviti neku vrijednost u njih i pohraniti ih tamo dok vam ne zatrebaju.

Stvaranje varijabli

Možete staviti vrijednost u varijablu na sljedeći način:

U gornjem kodu kreirali smo varijablu $ name i stavili Ivanovu vrijednost u nju, zatim smo kreirali varijablu $ age i dodijelili joj vrijednost 20.

Naziv "varijable" znači da se njezina vrijednost može promijeniti tijekom izvršavanja skripte:

U nekim jezicima varijabla se prvo mora "deklarirati", a zatim koristiti. U PHP-u nema deklaracije - varijabla se stvara u trenutku kada u nju unesete vrijednost.
Međutim, PHP programeri često kažu "deklariraj varijablu" umjesto "kreiraj varijablu".

Također, umjesto "stavljanja vrijednosti u varijablu", često kažu "dodijeli vrijednost".
Razlog je jednostavan - simbol =, zahvaljujući kojem pohranjujemo vrijednost u varijablu, naziva se "operator dodjele". Otuda i pojam "prikladan".

Pravila imenovanja varijabli

1. Ime varijable počinje simbolom $.

2. Drugi znak može biti slovo ili donja crta _

Nazivi varijabli razlikuju velika i mala slova. $name i $ Name su različite varijable.

Prikaz vrijednosti varijable na ekranu

Možete prikazati varijablu pomoću naredbe echo koju već poznajemo:

Naredba echo omogućuje ispis više vrijednosti na zaslon odjednom:

Obratite pažnju da smo proslijedili 2 vrijednosti u echo, odvojene zarezima. Na ovaj način možemo prenijeti onoliko vrijednosti koliko želimo. Sljedeća dva primjera će dati isti rezultat:

Postoji i skraćena sintaksa za izlaz varijabli u PHP-u. Umjesto

Prije PHP 5.4, skraćena sintaksa je radila samo kada je direktiva short_open_tag bila omogućena u PHP postavkama, što također dopušta korištenje skraćene oznake za otvaranje

Provjera vrijednosti varijable

Naredba echo nije uvijek prikladna za provjeru trenutne vrijednosti varijable. Na primjer, ako pokušate prikazati prazan niz, "" ništa neće biti prikazano na ekranu. I nije jasno koji je razlog - prazna varijabla ili neradni kod.

Stoga se funkcija var_dump () koristi za provjeru vrijednosti varijable:

Rezultat izvođenja skripte:

String (5) "Vasya" niz (0) ""

Kao što vidite, PHP nije prikazao samo sadržaj varijable, već i broj znakova, pa čak i vrstu varijable (string). Tipove podataka pobliže ćemo pogledati u sljedećim lekcijama.

Brisanje varijabli

Možete izbrisati postojeću varijablu pomoću funkcije unset ():

Sada je vrijeme da malo vježbamo.

Zapamtite, gotovo svaki PHP zadatak može imati više rješenja. Stoga, ako se vaše odluke razlikuju od onih napisanih na ovoj stranici, to uopće ne znači da ste nešto pogriješili.

Napišite skriptu koja:
1. Stvara varijable s naslovima naslov i sadržaj i neke vrijednosti.
2. Izlazi vrijednost varijable title unutar oznake h1 i vrijednost varijable sadržaja unutar oznake div.

Prikaži rješenje

", $ naslov,""; jeka"

", $ sadržaj,"
"; ?>

Skrećem vam pozornost da ova odluka nije jedina ispravna. Na primjer, sljedeći kod će proizvesti isti rezultat:

prije 13 godina

Malo treba pripaziti:

Ako isključite RegisterGlobals i povezane, a zatim upotrijebite get_defined_vars (), možda ćete vidjeti nešto poput sljedećeg:

Niz
[GLOBALS] => Niz
[GLOBALS] => Niz
* REKURSIJA *
[_POST] => Niz ()
[_GET] => Niz ()
[_COOKIE] => Niz ()
[_FILES] => Niz ()
)

[_POST] => Niz ()
[_GET] => Niz ()
[_COOKIE] => Niz ()
[_FILES] => Niz ()

)
?>

Primijetite da $_SERVER ne postoji. Čini se da php samo učitava superglobalni $_SERVER ako se negdje koristi. Možete učiniti ovo:

ispis "

". htmlspecialchars (print_r (get_defined_vars (), true))."
" ;
ispis "
". htmlspecialchars (print_r ($ _SERVER, istina))."
" ;
?>

I tada će se $ _SERVER pojaviti na oba popisa. Pretpostavljam da "to nije problem, jer se ništa loše neće dogoditi u svakom slučaju, ali je ipak zanimljiva zanimljivost.

prije 6 godina

Budući da get_defined_vars () dobiva varijable samo u točki koju pozovete funkciju, postoji jednostavan način da dobijete varijable definirane unutar trenutnog opsega.

// Sam vrh vaše php skripte
$ vars = get_defined_vars ();

// Sada radi svoje stvari
$ foo = "foo";
$ bar = "bar";

// Dobiva sve varijable definirane u trenutnom opsegu
$ vars = array_diff (get_defined_vars (), $ vars);

jeka "

"
;
print_r ($ vars);
jeka "
" ;
?>

prije 15 godina

Ovdje je funkcija koja generira izvješće o otklanjanju pogrešaka za prikaz ili e-poštu
pomoću get_defined_vars. Izvrstan za dobivanje detaljne snimke bez
oslanjajući se na unos korisnika.

funkcija generateDebugReport ($ metoda, $ definirani_vars, $ email = "nedefinirano") (
// Funkcija za stvaranje izvješća o otklanjanju pogrešaka za prikaz ili e-poštu.
// Upotreba: generateDebugReport (metoda, get_defined_vars (), email);
// Gdje je metoda "preglednik" ili "e-pošta".

// Kreirajte popis zanemarivanja za ključeve koje vraća "get_defined_vars".
// Na primjer, HTTP_POST_VARS, HTTP_GET_VARS i drugi su
// redundantno (isto kao _POST, _GET)
// Također uključite vars koje želite zanemariti iz sigurnosnih razloga - tj. PHPSESSID.
$ ignorelist = niz ("HTTP_POST_VARS", "HTTP_GET_VARS",
"HTTP_COOKIE_VARS", "HTTP_SERVER_VARS",
"HTTP_ENV_VARS", "HTTP_SESSION_VARS",
"_ENV", "PHPSESSID", "SESS_DBUSER",
"SESS_DBPASS", "HTTP_COOKIE");

$ vremenska oznaka = datum ("m / d / y h: m: s");
$ message = "Izvješće o otklanjanju pogrešaka kreirano $ vremenska oznaka \ n";

// Dobiva posljednju SQL pogrešku za dobru mjeru, gdje je $ link identifikator resursa
// za mysql_connect. Komentirajte ili izmijenite za svoju bazu podataka ili postavke apstrakcije.
globalna $ veza;
$ sql_error = mysql_error ($ link);
if ($ sql_error) (
$ message. = "\ nMysql poruke: \ n". mysql_error ($ link);
}
// Kraj MySQL

// Ovdje se može koristiti rekurzivna funkcija. Shvatili ste ideju ;-)
foreach ($ Defined_vars kao $ ključ => $ val) (
if (is_array ($ val) &&! in_array ($ key, $ ignorelist) && count ($ val)> 0) (
$ poruka. = "\ n $ niz ključeva (ključ = vrijednost): \ n";
foreach ($ val kao $ potključ => $ subval) (
if (! in_array ($ potključ, $ ignorelist) &&! is_array ($ subval)) (
$ poruka. = $ potključ. "=". $ subval. "\ n";
}
elseif (! in_array ($ potključ, $ ignorelist) && is_array ($ subval)) (
foreach ($ subval kao $ subsubkey => $ subval) (
if (! in_array ($ potključ, $ ignorelist)) (
$ poruka. = $ potpodključ. "=". $ subval. "\ n" ;
}
}
}
}
}
elseif (!
is_array ($ val) &&! in_array ($ ključ, $ ignorelist) && $ val) (
$ poruka. = "\ nVarijabla". $ ključ. "=". $ val. "\ n";
}
}

Ako ($ metoda == "preglednik") (
echo nl2br ($ poruka);
}
elseif ($ metoda == "e-pošta") (
if ($ email == "nedefinirano") (
$ email = $ _SERVER ["SERVER_ADMIN"];
}

$ mresult = mail ($ email, "Izvješće o otklanjanju pogrešaka za". $ _ENV ["HOSTNAME"]. "", $ poruka);
ako ($ mresult == 1) (
jeka "Izvješće o otklanjanju pogrešaka uspješno poslano. \ N";
}
drugo (
jeka "Slanje izvješća o otklanjanju pogrešaka nije uspjelo. \ N";
}
}
}
?>

prije 17 godina

Jednostavna rutina za pretvaranje get_defined_vars objekta u XML.

funkcija obj2xml ($ v, $ indent = "") (
dok (lista ($ ključ, $ val) = svaki ($ v)) (
if ($ key == "__attr") nastavi;
// Provjera __attr
if (is_object ($ val -> __attr)) (
dok (popis ($ key2, $ val2) = svaki ($ val -> __attr)) (
$ attr. = "$ ključ2 = \" $ val2 \ "";
}
}
else $ attr = "";
if (is_array ($ val) || is_object ($ val)) (
ispis ("$ indent< $key$attr >\ n ");
obj2xml ($ val, $ indent. "");
ispis ("$ indent\ n ");
}
else print ("$ indent< $key$attr >$ val\ n ");
}
}

// Primjer objekta
$ x -> ime -> first = "Ivan";
$ x -> ime -> last = "Smith";
$ x -> arr ["Voće"] = "Banana";
$ x -> arr ["Veg"] = "Mrkva";
$ y -> kupac = $ x;
$ y -> kupac -> __attr -> id = "176C4";

$ z = get_defined_vars ();
obj2xml ($ z ["y"]);
?>
će ispisati:


Ivan
Smith


Banana
Mrkva

prije 11 godina

Kao napomena, get_defined_vars () ne vraća skup referenci varijabli (kao što sam se nadao). Na primjer:

// definiraj varijablu
$ my_var = "foo";

// dobivamo naš popis definiranih varijabli
$ definirani_varovi = get_defined_vars ();

// sada pokušajte promijeniti vrijednost kroz vraćeni niz
$defined_vars ["my_var"] = "bar";

echo $ my_var, "\ n";

?>

će ispisati "foo" (izvorna vrijednost). "Bilo bi lijepo kada bi get_defined_vars () imao neobavezni argument za njihovo referenciranje, ali pretpostavljam da je to prilično specijaliziran zahtjev. Možete to učiniti sami (manje povoljno) s nečim poput:

$ definirani_vari = niz ();
$ var_names = array_keys (get_defined_vars ());

foreach ($ var_names kao $ var_name)
{
$defined_vars [$ var_name] = & $ $ var_name;
}

?>

prije 1 godine

Prije sam ovdje objavio o tome da je "ovo" u get_defined_vars.

Ispostavilo se da nije uvijek tu, ali će se u određenim slučajevima neobjašnjivo pojaviti.

PHP -r "
razredni ispit (
javna funkcija a () (var_dump (array_keys (get_defined_vars ())); $ a = 123;)
javna funkcija b () (var_dump (array_keys (get_defined_vars ())); $ this;)
}
$ t = novi test ();
$ t-> a ();
$ t-> b ();
"

niz ()
niz ("ovo")

To se ne događa u PHP-u 7.2, ali će se dogoditi u PHP-u 5.6.

prije 1 godine

Neki komentari ovdje ističu da ova funkcija neće vraćati reference. Međutim, vraća imena, a imena su "reference".

Ne bih preporučio ovdje prijedloge koji ga pretvaraju u reference.

Javna funkcija x ($ a, $ b, $ c) (
foreach (array_keys (get_defined_vars ()) kao $ ključ)
if ($ ključ! == "ovo")
$ this-> y ($ ($ ključ));
}

Javna funkcija y (& $ ulaz) (
$ ulaz ++;
}

Umjesto $ () možete koristiti i $$.

Napravio sam neke lude stvari u svoje vrijeme kako bih napravio iznimno generički kod, ali "nikad nisam morao učiniti ništa slično gore navedenom. Možda čak i neće raditi (ali bi trebao jer se ne razlikuje od $ a [$ key]).

Možete također napraviti $$ key ++, ali ja "nikad nisam vidio kod poput onog koji nije bio" užasno loš (koristeći dinamiku gdje dinamika "nije od koristi).

Ako "radite tako nešto, onda to dodatno proučite.

Ova lekcija istražuje opseg PHP varijabli. Objašnjava razliku između lokalnog i globalnog opsega, pokazuje kako pristupiti globalnim varijablama unutar funkcije, kako raditi sa superglobalima i kako stvoriti statičke varijable.

Kada počnete učiti PHP i počnete raditi s funkcijama i objektima, opseg varijabli je pomalo zbunjujući. Na sreću, PHP-ova pravila u tom pogledu su vrlo laka za razumijevanje (u usporedbi s drugim programskim jezicima).

Što je opseg?

Opseg varijable je kontekst unutar kojeg je varijabla definirana i gdje joj se može pristupiti. PHP ima dva varijabilna opsega:

  • Globalno- varijablama se može pristupiti bilo gdje u skripti
  • Lokalni- varijablama se može pristupiti samo unutar funkcije u kojoj su definirane

Varijabilni opseg, a posebno lokalni opseg, znatno olakšava upravljanje kodom. Kad bi sve varijable bile globalne, onda bi se mogle promijeniti bilo gdje u skripti. To bi dovelo do kaosa i velikih skripti, jer vrlo često različiti dijelovi skripte koriste varijable s istim imenom. Opsegom lokalnog konteksta definirate granice koda koji može pristupiti varijabli, čineći kod robusnijim, modularnijim i lakšim za otklanjanje pogrešaka.

Za varijable koje su u globalnom opsegu kaže se da su globalne, a varijable s lokalnim opsegom nazivaju se lokalnim.

Evo primjera kako funkcioniraju globalne i lokalne varijable.

";) reciHello (); echo" Vrijednost \ $ globalName: "$ globalName"
"; echo" Vrijednost \ $ localName: "$ localName"
"; ?>

Bok Harry! $ GlobalName vrijednost: "Zoe" $ localName vrijednost: ""

U ovoj skripti napravili smo dvije varijable:

  • $ globalName- ovo je globalni varijabla
  • $ localName- ovo je lokalni varijabla koja se kreira unutar funkcije sayHello ().

Nakon kreiranja varijable i funkcije, skripta poziva sayHello (), što daje "Hello Harry!" ... Skripta zatim pokušava ponoviti vrijednosti dviju varijabli. Evo što se događa:

  • Jer $ globalName je stvorena izvan funkcije, dostupna je bilo gdje u skripti, pa se prikazuje "Zoya".
  • $ localName bit će dostupno samo unutar funkcije sayHello (). Budući da je izraz echo izvan funkcije, PHP ne dopušta pristup lokalnoj varijabli. Umjesto toga, PHP pretpostavlja da će kod stvoriti novu varijablu pod nazivom $ localName, koja će primiti zadanu vrijednost praznog niza. to je razlog zašto drugi poziv echo ispisuje vrijednost "" za varijablu $ localName.

Pristup globalnim varijablama unutar funkcije

Za pristup globalnoj varijabli izvan funkcije samo napiši njeno ime. Ali za pristup globalnoj varijabli unutarnja funkcija, prvo morate deklarirati varijablu kao globalnu u funkciji koristeći globalnu ključnu riječ:

Funkcija myFunction () (global $ globalVariable; // Pristup globalnoj varijabli $ globalVariable)

Ako to ne učinite, PHP pretpostavlja da stvarate ili koristite lokalnu varijablu.

Evo primjera skripte koja koristi globalnu varijablu unutar funkcije:

"; global $ globalName; echo" Pozdrav $ globalName!
";) reciHalo ();?>

Kada se izvrši, skripta će ispisati:

Bok Harry! Bok Zoya!

Funkcija sayHello () koristi ključnu riječ global da proglasi varijablu $ globalName globalnom. Tada može pristupiti varijabli i prikazati njezinu vrijednost ("Zoya").

Što su superglobali?

PHP ima poseban skup unaprijed definiranih globalnih nizova koji sadrže različite informacije. Takvi se nizovi nazivaju superglobali, budući da su im dostupni s bilo kojeg mjesta u skripti, uključujući unutarnji prostor funkcije, i ne moraju se definirati pomoću globalne ključne riječi.

Ovdje je popis superglobala dostupnih u PHP 5.3:

  • $ GLOBALS - popis svih globalnih varijabli u skripti (osim superglobalnih)
  • $ _GET - sadrži popis svih polja obrasca koje je preglednik poslao pomoću GET zahtjeva
  • $ _POST - sadrži popis svih polja obrasca koje je preglednik poslao pomoću POST zahtjeva
  • $ _COOKIE - sadrži popis svih kolačića koje šalje preglednik
  • $ _REQUEST - sadrži sve kombinacije ključ/vrijednost koje se nalaze u nizovima $ _GET, $ _POST, $ _COOKIE
  • $ _FILES - sadrži popis svih datoteka koje je učitao preglednik
  • $ _SESSION - omogućuje vam pohranjivanje i korištenje varijabli sesije za trenutni preglednik
  • $ _SERVER - sadrži informacije o poslužitelju, kao što je naziv datoteke skripte koja se izvršava i IP adresa preglednika.
  • $ _ENV - Sadrži popis varijabli okruženja proslijeđenih PHP-u, na primjer CGI varijable.
Na primjer, možete koristiti $_GET da biste dobili vrijednosti varijabli koje su zatvorene u URL nizu zahtjeva skripte i prikazali ih na stranici:

Ako pokrenete gornju skriptu s URL nizom http://www.example.com/script.php?yourName=Fred, ispisat će:

Bok Fred!

Upozorenje! U pravoj skripti nikada ne biste trebali koristiti takav prijenos podataka zbog slabe sigurnosti. Uvijek biste trebali provjeriti ili filtrirati svoje podatke.

$ GLOBALS superglobal vrlo je zgodan za korištenje jer vam omogućuje organiziranje pristupa globalnim varijablama u funkciji bez potrebe za korištenjem globalne ključne riječi. Na primjer:

";) sayHello (); // Ispisuje" Zdravo, Zoe! "?>

Statičke varijable: one su negdje u blizini

Kada kreirate lokalnu varijablu unutar funkcije, ona postoji samo dok je funkcija pokrenuta. Kada funkcija završi, lokalna varijabla nestaje. Kada se funkcija ponovno pozove, kreira se nova lokalna varijabla.

Ovo funkcionira izvrsno u većini slučajeva. Na ovaj način funkcije su samostalne i uvijek rade isto svaki put kada se pozovu.

Međutim, postoje situacije u kojima bi bilo prikladno stvoriti lokalnu varijablu koja "pamti" svoju vrijednost između poziva funkcije. Takva se varijabla naziva statična.

Da biste stvorili statičku varijablu u funkciji, morate koristiti ključnu riječ static ispred naziva varijable i svakako joj dati početnu vrijednost. Na primjer:

Funkcija myFunction () (statična $ myVariable = 0;)

Razmotrimo situaciju kada je prikladno koristiti statičku varijablu. Recimo da kreirate funkciju koja, kada se pozove, stvara widget i prikazuje broj već stvorenih widgeta. Možete pokušati napisati kod koristeći lokalnu varijablu:


"; echo createWidget ()." koje smo već stvorili.
"; echo createWidget ()." već smo kreirali.>
"; ?>

No, budući da se varijabla $ numWidgets kreira svaki put kada se funkcija pozove, dobit ćemo sljedeći rezultat:

Izrađujemo neke widgete ... 1 koje smo već kreirali. 1 smo već stvorili. 1 smo već stvorili.

Ali korištenjem statičke varijable možemo pohraniti vrijednost iz jednog poziva funkcije u sljedeći:

"; echo createWidget ()." koje smo već stvorili.
"; echo createWidget ()." koje smo već stvorili.
"; echo createWidget ()."> već smo stvorili.
"; ?>

Skripta će sada proizvesti očekivani izlaz:

Kreiramo neke widgete ... 1 koje smo već stvorili. 2 smo već stvorili. 3 smo već stvorili.

Iako statička varijabla zadržava svoju vrijednost između poziva funkcije, ona je važeća samo u trenutku kada se skripta izvršava. Čim skripta završi s izvođenjem, sve statičke varijable se uništavaju, kao i lokalne i globalne varijable.

To je sve! Često provjeravajte PHP dokumentaciju.