statisk variabel i PHP Förstå Varierande räckvidd i PHP - Del 2 Inledning Detta är del 2 i min serie, Förstå Varierande räckvidd i PHP. I denna del av serien, tittar vi på statisk variabel i PHP. Allt i denna serie handlar om PHP 5. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser.
Förekomst av Local Scope Variabel Betrakta följande program: function fn () {$ e = 5; echo $ e; //andra uttalanden som involverar $ e i detta block. } Fn (); ?> Vi har en funktion och variabeln $ e inuti funktionen. Denna variabel finns inte någonstans utanför funktionen. Vet att när utförandet av denna funktion sker, finns variabeln $ e. Så snart genomförandet av funktionen är över, variabeln $ e (och dess värde) upphör att existera; som är variabeln inte kvar efter utförandet av funktionen; men programmet bedriver. Detta gäller för alla funktioner och deras lokala variabler.
Göra Variabel existera efter Funktion Execution Observera att variabeln ovan är en lokal funktionsvariabel. Det finns ett sätt att göra en lokal variabel som den ovan, existera efter utförande funktion. För att uppnå det du föregå variabeln i sin initiering i lokal omfattning, med sökordet, statisk. Följande program illustrerar detta: function fn () {statisk $ e = 5; echo $ e. "$ E = $ e + 2;} fn (); fn (); fn ();.
> I programmet har du funktionsdefinition och sedan funktionen anropas tre gånger Det första påståendet i funktionen initierar lokal variabel, $ e, föregås av nyckelordet gör statisk. Detta uttalande variabeln $ e och vad värdera sina förvärvar, existera efter funktionen har genomfört. Det andra uttalandet ekon oavsett värde $ e har till webbläsaren. Den tredje uttalande ökar värdet på $ e med 2. Funktionen anropas tre gånger. Första gången det kallas, är 5. Värdet 5 ekas värdet på $ e och sedan värdet på $ e ökas med 2 till 7 .
Eftersom utförandet av funktionen slutar $ e behåller värdet 7 eftersom dess initiering, det gjordes statisk. Andra gången funktionen anropas, är initieringen inte undersökt igen eftersom det är statisk och tittat på endast i den första funktionen utförande. I det andra utförandet (call), är $ e värdet ekade som 7. Före utgången av det andra utförandet, är värdet $ e ökat från 7 till 9. Vid slutet av den andra funktionen utförande värde på 9 bibehålles.
I det tredje utförandet, är initieringen inte titt