Avatar billede jakl2 Nybegynder
16. december 2008 - 14:13 Der er 3 kommentarer og
1 løsning

Rekursiv funktion retunere ikke variabel

Jeg har et problem med min rekursive funktion, den retunere ikke den variabel, som jeg prøver at få den til.

Hvis jeg lader linjen: //echo $Path; blive til echo $Path; kan jeg se at $Path indeholder det rigtige, men når det kommer med return, så er den tom.

function get_path_to_category($category) {
    global $Path;
    $Path = $category.$Path;
    $getparentidrow = mysql_fetch_assoc(mysql_query("SELECT parent_id FROM categories WHERE categories_id = $category"));
    if($getparentidrow['parent_id'] != 0) {
        $Path = '_'.$Path;
        get_path_to_category($getparentidrow['parent_id']);
    } else {
        //echo $Path;
        return $Path;
    }
}
Avatar billede jakobdo Ekspert
16. december 2008 - 14:19 #1
Skal du ikke rette:
get_path_to_category($getparentidrow['parent_id']);
til:
return get_path_to_category($getparentidrow['parent_id']);
Avatar billede jakl2 Nybegynder
16. december 2008 - 14:22 #2
Tusind tak jakobdo!

Du må meget gerne smide et svar.

Men kan du forklare mig hvorfor det ikke virkede uden den return get_path_to_category(...
Avatar billede jakobdo Ekspert
16. december 2008 - 15:21 #3
Du har return i din funktion:
return $Path
Den værdi får du ikke gavn af, hvis ikke du laver return funktions_navn.
Dog burde du vel bruge den værdi som
$Path = get_path_to_category($getparentidrow['parent_id']);

Men du får et svar.
Avatar billede jakobdo Ekspert
17. december 2008 - 09:25 #4
Takker for point.
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