Funktion gibt nichts zurück..

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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'].

      Comment


      • #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;
            } 

        Comment

        Working...
        X