从函数调用递归函数仅返回第一个值

Ace*_*Ace 2 php recursion

我有这个递归函数调用自己直到数字达到总数.我做了这个演示来显示工作,实际上是secondFunc()conatins数据库查询.我正在从firstFunc()传递给secondFunc()的数组中保存值.问题是,当我调用第一个函数时,它只显示1个值,即1.当我在第二个函数中取消注释var_dump时,它显示所有值.我知道我做错了什么.请指出我的错误.这里的问题是什么?

function firstFunc($total){    
    $array=array();
    $num=0;
    return secondFunc($total,$num,$array);
}



function secondFunc($total,$num,$array){
    $num++;
    $array[$num]=$num;
    if($num<$total){
    secondFunc($total,$num,$array);
    }
    //var_dump($array);
    //exit();
    return $array;

}

var_dump(firstFunc(5));
Run Code Online (Sandbox Code Playgroud)

演示http://codepad.viper-7.com/Bic8ce

Jon*_*Jon 5

当递归调用函数时,必须确保将递归调用的返回值传播回原始调用者:

if($num<$total) {
    return secondFunc($total,$num,$array); // return added
}
Run Code Online (Sandbox Code Playgroud)