*   >> läser Utbildning artiklar >> tech >> web design

Php - Pass som referens, A Different Approach

Så innan vi hoppar bara in passerar hänvisningar till funktioner, kan återkomma mycket mer gemensam strategi, bara för att ge en snabb uppdaterare för de som är ur praktiken, eller de som är just nu expanderar in i världarna av funktioner Omdömen

En funktion påträffas i php ser oftast gillar något av de följande två exempel:.

Omdömen

 //ingen returnfunction SayHi () {echo "Hej mig, möta den verkliga mig ",!} SayHi (); //Matar vår text 

Det här är en funktion som kommer att göra något liknande utgångs text till skärmen, eller kasta ett fel, eller vad du vill att den ska göra. Omdömen

 //returnfunction growOld ($ ålder ) {$ ålder = $ ålder + 1; tillbaka $ ålder;} $ myAge = 21, $ myAge = growOld ($ myAge); echo $ myAge; //22 

Vi kan se att denna funktion tar en variabel, förmodligen en ålder, och ökar den med en, innan han återvände det nya värdet för användaren.

Lite värdelös, men det illustrerar vår punkt. Omdömen

Nu, meddelande i det andra exemplet har vi en funktionsparameter på $ ålder. När denna funktion kallas, är du bara skicka ett värde till det, om det är det aktuella värdet av en variabel, eller bara ett nummer, som "15". Detta kallas "Pass av värde", och är den vanligaste typen funktion, överlägset.

Nu, tänk om vi vill utföra vissa åtgärder på våra faktiska variabel, inte bara dess aktuella värde? Att tänka på det på ett annat sätt, tänk om vi vill ändra vad som finns i vår själva behållaren, i stället för en kopia av det? Tänk dig följande exempel Omdömen

 //lägga till ett nummer till vår arrayfunction addAFive ($ array) {$ array [] = 5;}. $ MyArray = array ('1', '2 "," 3 ", '4'); addAFive ($ myArray); print_r ($ myArray); //Vad är resultatet? 

Svaret kanske inte är vad du tror. Eftersom vi bara klarat en kopia av vår $ myArray till funktionen, endast kopian ges en "5".

Den ursprungliga arrayen fortfarande bara innehåller siffror 1,2,3 och 4. Så frågan är, hur ska vi skicka våra faktiska objektet i funktion i stället för en kopia? Svaret är ett enkelt "&". Det är rätt, de ödmjuka et-tecken. Om vi ​​förordet vår variabelnamn i vår funktionens parameterlista med detta, då funktionen kommer att veta att verka på den faktiska passerade objektet, inte en kopia av det! Det är verkligen häftigt, check it out:

 //lägga till ett namn till vår arrayfunction addAName (& $ array) //märker '&' föregående $ array {$ array [] = 'Jake';} $ myArray = array ('Jane', 'John', "Joey"), addAName ($ myArray), print_r ($ m

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.