我有以下递归功能:
private function myRecursiveFunction()
{
$results = [];
//stuff related to $results
...
if(!$done){
.....
$this->myRecursiveFunction();
}
return $results;
}
当我在var_dump($results)
内部执行函数时,我得到了所有数组结果
但是当我从另一个函数调用该函数时,我将只得到$results
数组中的第一个元素。
public function myFunction()
{
$results = $this->myRecursiveFunction();
}
答案 0 :(得分:4)
我不是100%肯定你想在这里完成什么,但递归功能通常会发送他们的工作量"一直到最里面的功能,然后结果是"添加"在回来的路上彼此相处。如果这确实是您想要的,您可能需要将代码更改为以下内容:
private function myRecursiveFunction()
{
$results = [];
//stuff related to $results
...
if(!$done){
.....
// Add the computed results of the recursive call to our data stack
$results[] = $this->myRecursiveFunction();
}
// Return the entire result array
return $results;
}