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:)
"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:)