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

Php - Pass som referens, A Different Approach

yArray); //Jake är nu en del av klubben!

Är det inte fantastiskt? Bara genom att lägga till et-tecknet till variabelnamnet, funktionen känner nu att arbeta med verkliga variabel i stället för en kopia som ska kasseras i slutet av funktionen livscykel. Uppenbarligen detta exempel är enbart att - ett exempel, inte alltför bra, men om du kör flera åtgärder på en enda punkt (i synnerhet en array) är det mycket lättare och renare, att passera objektet som själva objektet

>

En varning dock inte försöka passera en referens till en funktion som inte förväntar sig det, eftersom det kommer att producera en "jourtid passera genom hänvisning" error:

 //detta är inte allowedfunction someUnsuspectingFunction ($ array) //detta förväntar sig en kopia {$ array [] = "5";} $ myArray = array ('1', '2 "," 3 "," 4 "), someUnsuspectingFunction (& $ myArray); //Detta kommer att kasta en exceptionprint_r ($ myArray), 

Problemet här (nörd varning) är att & egentligen betyder ge mig "adress" av en variabel att manipulera.

Så när vi kallar det på rätt sätt (funktion funk (& $ var) {}), funktionen vet att det kommer att bli en adress i minnet, och vet att manipulera objekt på den platsen. Om vi ​​försöker använda et-tecken när du ringer en funktion, den felaktigt sätt (funk (& $ myVar);), vi passerar den verkliga minnesadress för variabeln till funktionen, som förväntar sig en array, inte en minnesadress!

Så, medan en lite förvirrande, är det ganska tjusig och ganska användbar färdighet att ha under din programmering bältet! Omdömen

Det var allt för nu! Omdömen

Omdömen

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