Avatar billede Slettet bruger
10. oktober 2003 - 19:43 Der er 7 kommentarer og
1 løsning

Gennemløbe array af objeker (by reference not by value)

Hej,

Hvordan gør i, når i skal gennemløbe et array af objekter?
Jeg vil IKKE have en kopi af hvert element/objekt. Jeg kan IKKE index'ere ned i array'et (sjove index'es).

Eneste mulighed jeg kan finde er array_walk($object_array, "foo");

function foo(&$object_array) {
    $object_array->do_stuff();
}

Alternativt må jeg implementere en iterator.
Avatar billede Slettet bruger
10. oktober 2003 - 19:51 #1
function foo(&$object_in_the_array) {
    $object_in_the_array->do_stuff();
}
Avatar billede Slettet bruger
10. oktober 2003 - 19:55 #2
Fandt lige denne mulighed også:

foreach(array_keys($object_array) as $key) {
    $object_array[$key]->do_stuff();}
}

Andre idéer?
Avatar billede fangel Nybegynder
10. oktober 2003 - 21:33 #3
jeg bruger normalt foreach() når jeg løber gennem arrays (dog ikke med referancer til objekter)

Morten
Avatar billede Slettet bruger
10. oktober 2003 - 21:34 #4
Pointen er netop at foreach($object_array as $object) laver en kopi af objektet. Der er ingen konstruktion som foreach($object_array as &$object).
Avatar billede fangel Nybegynder
10. oktober 2003 - 21:35 #5
måske each() - ved det ikke...
Avatar billede Slettet bruger
10. oktober 2003 - 21:36 #6
Når du ikke ved det, så hold venligst bøtte.
Avatar billede fangel Nybegynder
10. oktober 2003 - 22:08 #7
det er et konstuktivt foreslag - each() kan bruges til at løbe gennem arrays... er lidt usikker på om der tages kopier...

men efter at have læst manualen om each() tror jeg nu at dette er tilfædet... så each() er nok ikke den du skal lede efter... tror din array_walk er den eneste der ikke gør dette...

Morten
Avatar billede Slettet bruger
14. oktober 2003 - 01:30 #8
foreach(array_keys($object_array) as $key) {
    $object_array[$key]->do_stuff();}
}

er vist det smarteste.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester