simenss Skrevet 11. desember 2005 Del Skrevet 11. desember 2005 (endret) Noe som kan si meg hva som er galt med funksjonen(e) under? Den skriver ikke ut 12345. <?php function foo($data) { function foo2($data2) { $var['name'] = $data2; return($var); } foo2($data); print($var['name']); } foo('12345'); ?> Endret 11. desember 2005 av simenss Lenke til kommentar
lillegrill Skrevet 11. desember 2005 Del Skrevet 11. desember 2005 Hei, hvorfor definerer du foo2 inne i foo? Har ikke programmert mye php men det ser ikke riktig ut.. Det fungerer vel om du definerer foo2 utenfor foo Lenke til kommentar
simenss Skrevet 11. desember 2005 Forfatter Del Skrevet 11. desember 2005 Hei, hvorfor definerer du foo2 inne i foo? Har ikke programmert mye php men det ser ikke riktig ut.. Det fungerer vel om du definerer foo2 utenfor foo 5281132[/snapback] Det er bare et eksempel. foo2() skal beregne dimensjonene på en tekst når foo() kjøres. Lenke til kommentar
Scix Skrevet 11. desember 2005 Del Skrevet 11. desember 2005 (endret) Fikk dette til å virke lokalt vertfall <?php function foo($data) { function foo2($data2) { $var['name'] = $data2; return($var); } $test = foo2($data); print $test[name]; } foo('12345'); ?> Edit: Puttet det inn i fancy kode boks Endret 11. desember 2005 av Scix Lenke til kommentar
Nervetattoo Skrevet 11. desember 2005 Del Skrevet 11. desember 2005 Du kan fint definere funksjoner innenfor en annen funksjon, men jeg tror du ikke helt har forstått hvordan det fungerer, og hva du egentlig oppnår med det Det som skjer når du definerer en funksjon innenfor en annen er at den "innerste" funksjonen først blir deklarert (gjort tilgjengelig) når den ytterste funksjonen er kalt. function foo() { function foo2() { return 1; } echo foo2(); } Her vil følgende fungere foo(); echo foo2(); Mens følgende ikke vil fungere echo foo2(); Det er (så vidt jeg kan komme på) ingen gode grunner for å deklarere en funksjon innenfor en annen funksjon. Alt du oppnår er rot. (Hadde skopet for funksjon blitt lokalt for funksjonen den er deklarert i, så hadde det iblant vært nyttig). Hvorfor ønsker du å gjøre dette? Lenke til kommentar
ZoRaC Skrevet 12. desember 2005 Del Skrevet 12. desember 2005 Er det ikke slike ting man bruker klasser til? Er ikke helt inne på det med klasser, men mener det er godt egnet for å samle funksjoner sammen Lenke til kommentar
Nervetattoo Skrevet 12. desember 2005 Del Skrevet 12. desember 2005 Er det ikke slike ting man bruker klasser til? Er ikke helt inne på det med klasser, men mener det er godt egnet for å samle funksjoner sammen 5284290[/snapback] Nei, overhodet ikke. Objekter representerer en enhet, som et objekt fra virkeligheten, med diverse metoder og attributter. Altså er ikke et objekt en slags kontainer for ymse funksjoner du tilfeldigvis bruker i en sammenheng. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå