J'ai une fonction récursive définie comme suitfonction récursive ne pas retourner une valeur en PHP
private function _buildPathwayRecurse(&$category, &$reversePathway = array()) {
$category->uri = FlexicontentHelperRoute::getCategoryRoute($category->id);
$reversePathway[] = $category;
if ($category->parent_id != 0) {
$category = $this->_getCatForPathway($category->parent_id);
$this->_buildPathwayRecurse($category, $reversePathway);
} else {
return $reversePathway;
}
}
et je vous appelle comme si
$reversePathway = $this->_buildPathwayRecurse($category);
Cependant reversePathway $ finit par être nul . Une idée de pourquoi c'est? J'ai parcouru mon code en utilisant XDebug et autant que je sache, tout fonctionne comme il se doit. Quand j'arrive à la ligne
return $reversePathway
$ reversePathway est parfait. Il persiste à travers les appels de fonction et gagne un nouvel élément à chaque fois. juste avant l'exécution de la ligne de retour il possède un tableau de quelques articles, tout comme il devrait être, mais au moment où je sors à
$reversePathway = $this->_buildPathwayRecurse($category);
il semble juste disparaitra!
Vous remplacez la variable dans la deuxième ligne de la fonction. Cela arrive à chaque récursion. – halfdan