*   >> Læs Uddannelse artikler >> tech >> web design

Php - Pass som reference, A Different Approach

Så før vi bare hoppe ind passerende henvisninger til funktioner, lader revidere langt mere fælles tilgang, bare for at give et hurtigt genopfriskningskursus for dem, der er ude af praksis, eller dem, der er lige nu at udvide ind i en verden af ​​funktioner

En funktion stødt på i php ser oftest som en af ​​de følgende to eksempler:.


 //ingen returnfunction SayHi () {echo "Hej mig, møde den virkelige mig «!} SayHi (); //Udgange vores tekst 

Dette er en funktion, der vil gøre noget som output tekst på skærmen, eller smide en fejl, eller hvad du vil have det til at gøre.

 //returnfunction growOld ($ alder ) {$ alder = $ alder + 1; returnere $ alder;} $ minAlder = 21; $ minAlder = growOld ($ minAlder), echo $ minAlder; //22 

Vi kan se, at denne funktion tager en variabel, formentlig en alder, og inkrementerer det efter en, før han vendte tilbage den nye værdi for brugeren.

Lidt ubrugelig, men det illustrerer vores punkt.

Nu varsel i det andet eksempel har vi en funktion parameter for $ alder. Når denne funktion kaldes, er du bare sende en værdi til det, om det er den aktuelle værdi af en variabel, eller bare et nummer, som '15'. Dette kaldes "Pass By Value", og er den mest almindelige funktionstype, langt.

Nu, hvad hvis vi ønsker at udføre nogle handlinger på vores faktiske variabel, ikke bare sin nuværende værdi? At tænke på det på en anden måde, hvad nu hvis vi ønsker at ændre, hvad der er i vores selve beholderen, i stedet for en kopi af det? Overvej følgende eksempel

 //tilføje et nummer til vores arrayfunction addAFive ($ array) {$ array [] = 5;}. $ MyArray = array ('1', '2', '3', »4 '); addAFive ($ myArray) print_r ($ myArray); //Hvad er output? 

Svaret kan ikke være, hvad du synes. Da vi kun passeret en kopi af vores $ myArray til funktionen, kun blev kopien givet en '5'.

Den oprindelige matrix stadig kun indeholder tal 1,2,3, og 4. Så spørgsmålet er, hvordan kan vi sende vores aktuelle emne i funktionen i stedet for en kopi? Svaret er en simpel '&'. Det er rigtigt, den ydmyge-tegn. Hvis vi indlede vores variabelnavn i vores funktions parameter liste med dette, så den funktion vil vide at operere på den faktiske passerede vare en kopi af det! Det er virkelig cool, tjek det ud:

 //føje et navn til vores arrayfunction addAName (& $ array) //mærke til '&' foregående $ matrix {$ array [] = 'Jake';} $ myArray = array ('Jane', 'John', 'Joey'); addAName ($ myArray) print_r ($ myArray); //J

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.