Funktion gibt nichts zurück..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion gibt nichts zurück..

    Hallo. Folgende Funktion gibt zwar das richtige aus, (print_r()) aber nichts zurück. Was mach ich denn da falsch?
    PHP-Code:
        // get kats by parentId
        
    function getKatForNews($id$ar = array()) {
            global 
    $db;
            
    array_push($ar$id);
            
    $overkat $db->query_small("SELECT parentId FROM csw_news_kat WHERE katId = '".$id."'");
            if(
    $overkat['parentId'] == '0') {
                
    print_r(array_reverse($ar));
                return 
    array_reverse($ar);
            } else {
                
    getKatForNews($overkat['parentId'], $ar);
            }
        } 
    Grüße, Oli

  • #2
    Hab nur kurz drüber gefliegt

    aber evtl. könnte Übergabe by Reference helfen

    Ändere mal
    PHP-Code:
       function getKatForNews($id$ar = array()) { 
    in
    PHP-Code:
       function getKatForNews($id, & $ar) { 
    und übergib beim ersten aufruf eine leere Array Variable

    Nur so im vorbei fliegen
    chansel0049
    ----------------------------------------------------
    if you've reached the bottomline - dig further!
    Übersetzer gesucht? http://www.babelport.com

    Kommentar


    • #3
      dann kommentiere mal mithilfe der ausgabe die situation, bei der der else-zweig ausgeführt wird. interessant wäre die zuweisung von $overkat['parentId'].

      Kommentar


      • #4
        Ich glaube ich weiß, woran das ganze liegt. Wenn die Funktion sich selbst aufruft und dann etwas zurückgibt, gibt sie es nicht an das Script selbst zurück, sondern erstmal nur an sich selbst. Ich muss das array also aus dem ersten Funktionsaufruf zurückgeben. Stellt sich eben nur die Frage, wie.

        /edit: Juhu, es geht!
        PHP-Code:
        function getKatForNews($id$ar = array()) {
                global 
        $db;
                
        array_push($ar$id);
                
        $overkat $db->query_small("SELECT parentId FROM csw_news_kat WHERE katId = '".$id."'");
                if(
        $overkat['parentId'] != '0') {
                    
        $ar getKatForNews($overkat['parentId'], $ar);
                } 
                return 
        $ar;
            } 

        Kommentar

        Lädt...
        X