Global og funktion Variabel Scope i PHP Forståelse Variabel Scope i PHP - Del 1 Indledning Dette er del 1 af min serie, Forståelse Variabel Omfang i PHP. I denne del af serien ser vi på global og fungerer variabel rækkevidde i PHP. Alt i denne serie vedrører PHP 5. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser. Du har brug for grundlæggende viden i PHP for at forstå denne serie.
Hvis du ikke har denne forudsætning viden, så læs serien jeg skrev i denne blog, hvis første del er titlen, Kom godt i gang med PHP. For at komme til serien, så skriv titlen og mit navn Chrys i søgefeltet på denne side og klik på Søg. Hvad er en variabel Anvendelsesområde PHP specifikation, hedder det: ". Omfanget af en variabel er den sammenhæng, som det er defineret" Du må ikke forstå, hvad det betyder, hvis du er ny til computing. Så jeg vil gøre nogle illustrationen.
Overvej følgende program: funktion fn () {$ b = 2; echo $ b; } Fn (); ?> Er erklæret Variablen, $ b og kun anvendes i funktionen blokken. Denne variabel kan ikke ses uden for funktionen (blok). Denne variabel siges at have lokal funktion Omfang eller blot, Lokalt Scope. Betragt nu følgende program: $ b = 2; funktion fn () {//nogle udtalelser. . . } Echo $ b; ?> Er erklæret Variablen, $ b og anvendes uden for funktionen. Denne variabel kan ikke ses inde i funktion. Det siges at have global rækkevidde.
Seeing global variabel i Local Scope Normalt kan du ikke se en global variabel i lokal rækkevidde, og du kan heller ikke se en lokal variabel i den globale rækkevidde. Det er dog muligt at foretage en global variabel vises i lokal omfang og ikke omvendt. Der er to måder at gøre en global variabel vises i lokal funktion anvendelsesområde som følger: Anvendelse af den globale Søgeord Antag, at en global variabel er erklæret uden for funktionen. For at den globale variabel skal ses inde i funktionen, er du nødt til at re-erklære den inde i funktionen indledes med søgeord, globale.
Følgende program illustrerer dette: $ b = 2; funktion fn () {global $ b; echo $ b; } Fn (); ?> Med den globale variabel re-erklæret inde i funktionen indledes med ordet, globale, den globale variabel kan ses inde i funktion. Anvendelse af den foruddefinerede $ GLOBALS Array Der er en foruddefineret række kaldet $ GLOBALS. Dette er et associativt array med nøgle /værdi par. Alle de globale variabler og deres værdier i dit program gemmes i denne array som nøgle /værdi-par.
For hver global variabel, navnet på den variabel danner nøglen og værdien af de forskellige former den tilsvarende matrix værdi. Hemmeligheden er, at dette array kan ses i en funktion såvel som udenfor. Så hvis du ønsker en global variabel i en funktion, bare få adgang til tilsvarende element for den globale variabel i arrayet. Følgende program illustrerer dette: $ b = 2; funktion fn () {echo $ GLOBALS ['b']; } Fn (); ?> Bemærk at som nøglen til den globale variabel i array, har du ikke de $ tegn, der går forud for navnet på den variabel.
Navnet på variablen er i anførselstegn som nøglen i de firkantede parenteser, såsom med ovenstående "b". Passerer en global variabel til en funktion Overvej følgende kode, der virker: $ c = 2; funktion fn ($ x) {echo $ x; } Fn ($ c); ?> I ovenstående kode, $ c er en global variabel, og det kan ikke ses inde i funktion. Funktionen har parameteren, $ x. I funktionen opkald, er det globale variabel passerede som argument. Funktionen fungerer. Dette betyder ikke, at den globale variabel er blevet set af funktionen.
Den globale variabel er ikke blevet set af funktion, fordi søgeordet, global eller $ GLOBALS vifte ikke har været anvendt. Her er forklaringen på, hvad der er sket: Efter den funktion netop er blevet kaldt, straks som udførelsen af funktionen starter, værdien af parameteren, $ x bliver værdien af den globale variabel, $ c. Funktionen Definition blok bruger $ x og ikke $ c. Så værdien af det globale variable er overført til funktionen uden funktion se den globale variabel (navn). Det er værdien af den globale variabel der er sendt som argument og ikke variablen (navn).
Superglobale variabler i PHP Der er nogle foruddefinerede arrays, der kan ses i både globale og funktion dækningsområder. For at bruge nogen af disse arrays i en funktion, behøver du ikke at gå forud med søgeordet, globale. Du skal bare gå videre og bruge det ved at skrive sit navn, herunder en nøgle til at få en værdi. Et eksempel på et sådant array er $ GLOBALS som vi lige har set. Disse arrays kaldes superglobale variabler.
I PHP, superglobale variabler er: $ GLOBALS $ _SERVER $ _GET $ _POST $ _FILES $ _COOKIE $ _SESSION $ _REQUEST $ _ENV Jeg har netop talt om $ GLOBAL, som er den første på listen. At vide om de andre, bør du konsultere nogle andre dokumenter. Ikke funktionsblokke Er der betingede blokke, såsom hvis-blokken som lokale scopes? Nej, der er ikke. Lokal rækkevidde normalt beskæftiger sig med funktioner. Betragt følgende kode: $ c = 2; if ($ c == 2) {$ c = 3; echo $ C; }?>