*   >> Lese Utdanning Artikler >> tech >> web design

Php - Pass Av Reference, A Different Approach

Så før vi bare hoppe inn passerende referanser til funksjoner, lar revidere mye mer felles tilnærming, bare for å gi en rask oppfriskning for de som er ute av trening, eller de som er akkurat nå utvide til realms av funksjonene

En funksjon påtruffet i php ser oftest som en av de følgende to eksempler.

 //ingen returnfunction SayHi () {echo 'Hello meg, møte den virkelige meg! ';} SayHi (); //Utganger vår tekst 

Dette er en funksjon som vil gjøre noe sånt utgang tekst til skjermen, eller kaste en feil, eller noe annet du vil den skal gjøre.


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

Vi kan se at denne funksjonen tar en variabel, formodentlig en alder, og intervaller det etter en, før han returnerte den nye verdien for brukeren. Litt unyttig, men det illustrerer vårt synspunkt.

Nå varsel i det andre eksemplet har vi en funksjon parameter på $ alder. Når denne funksjonen kalles, er du bare sende en verdi til det, enten det er den nåværende verdien av en variabel, eller bare et tall, som '15'.

Dette kalles "Pass Av Value", og er den vanligste funksjonstype, langt. Nå, hva om vi ønsker å utføre noen handlinger på våre faktiske variable, ikke bare sin nåværende verdi? Å tenke på det på en annen måte, hva hvis vi ønsker å endre hva som er i vår faktiske container, i stedet for en kopi av det? Tenk deg følgende eksempel

 //legge til et nummer til vår arrayfunction addAFive ($ array) {$ matrise [] = 5;}. $ MyArray = array ('1', '2', '3', '4'); addAFive ($ myArray); print_r ($ myArray); //Hva er resultatet? 

Svaret er kanskje ikke det du tror.

Siden vi bare gått en kopi av vår $ myArray til funksjonen, ble bare kopien gitt en '5'. Den opprinnelige matrisen fortsatt bare inneholder tall 1,2,3 og 4. Så er spørsmålet, hvordan kan vi sende vår faktiske elementet inn i funksjonen i stedet for et eksemplar? Svaret er en enkel '&'. Det er riktig, den ydmyke tegnet.

Hvis vi forord vår variabelnavn i vår funksjonens parameter liste med dette, så vil funksjonen vite for å operere på selve passert element, ikke en kopi av det! Det er veldig kult, sjekk den ut:

 //legge til et navn til vår arrayfunction addAName (& $ array) //merke '&' foregående $ matrise {$ matrise [] = 'Jake';} $ myArray = array ('Jane', 'John', 'Joey'); addAName ($ myArray); print_r ($ myArray); //Jake er nå en del av klubben! 

Er ikk

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.