Hur kan det vara "fulkodning" att ha en funktion som hämtar ett värde på en variablen? Det är väl snare rätt väg att gå...
Nånggn i framtiden kanske du bara vill ha arrayen och inte strängen dessutom.
9 svar · 305 visningar · startad av GrodanBoll
Tjabba tjena
Jag vill alltså hämta en array o en sträng från en funktion i en klass. Typ MyKlass -> myFunc().
Funktionen returnerar en array på det vanliga sättet men jag vill även returnera en sträng.
Vet ju att man kan använda MyKlass -> myFunc(&$strEtt) för att hämta upp $strEtt igen men hur vettigt e att göra på detta sättet? E det ful-kodning?
Ska man kanske istället anropa en funktion till som då returnetrar strängen på det vanliga sättet (delar då upp den ursprungliga funktionen)? Även om det känns som en omväg och till viss del dubblerar lite kod.
Vad rekommenderas?
Hur kan det vara "fulkodning" att ha en funktion som hämtar ett värde på en variablen? Det är väl snare rätt väg att gå...
Nånggn i framtiden kanske du bara vill ha arrayen och inte strängen dessutom.
Jo, det är fulkod att använda sig av globala variabler och ändra värden på dem inuti metoder/funktioner. Det du ska göra är att dela upp ursprungsmetoden till två - en för strängen, och en för arrayen. :)
Ah... missade &-tecknet.
Skulle inte allt bli call-by-reference i 5.0? Fina möjligheter för fulkodning ;)
Njä, det gerju en del möjligheter också - som inte är fulkod. Men just i det här fallet betraktar jag det som fulkod, och att det är bättre med att dela upp metoden. :)
I 5.0 kommer ju allt att bli mer objektorienterat, så det får nog sina fördelar där. :)
Har en liten fundering här. Skulle man inte kunna returnera en array, som i sig håller arrayen på en post, och strängen på en annan.
Alltså typ:
$arr = array();
$arr[] = $array_att_returnera;
$arr[] = $sträng_att_returnera;
return $arr;
Eller är detat sättet också "fult"?
MVH Patrik
Självklart går det att göra så, men jag skulle föredra att dela upp metoden. Det blir mycket snyggare.
Re: Vill hämta mer än en variabel från en funktion
GrodanBoll skrev:
Vad rekommenderas?
Om det faktiskt finns en anledning, är det inget fel att använda referenser. Däremot brukar man säga att funktioner inte ska ha både bieffekter *och* returvärden (även om den principen är ganska ruckad på ;) ). Däremot tycker jag att du borde ange referensoperatorn i funktionshuvudet i stället för vid anrop:
function foo(&$arr, &$str){
...
}
Jag håller nog med dig SPiN, ju enklare en funktion är, desto mindre som kan bli fel med den, jag ville bara höra åsikter på denna metod.
MVH Patrik