Hopsel: Rekursive Funktion wird nicht verlassen

Beitrag lesen

Hi Hakan!

function findNode($rootnode, $searchnodeid){
if($rootnode->getId() == $searchnodeid){
                echo "gefunden";
  return $rootnode;
}else{
  $childarray = $rootnode->getSubnodes();
  foreach($childarray as $nextnode){
   echo $nextnode->getId()."-".$searchnodeid."|";
   findNode($nextnode, $searchnodeid);
  }
}
}

Bei Testbildschirmausgaben stelle ich fest, dass in die If-Abfrage richtig funzt. Also der Text "gefunden" wird ausgegeben, aber der return funzt nicht und der Baum wird weiter durchlaufen, bis am Ende  null zurück gegeben wird.
Warum funzt return $rootnode nicht??

Weil du den Rückgabewert nicht durchreichst.
"return findNode($nextnode, $searchnodeid);" wäre richtig.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)