1
我有這個遞歸函數調用自己,直到數字達到總數。我已經使這個演示顯示工作,實際上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));
演示http://codepad.viper-7.com/Bic8ce
通過使用回烏爾給人值回運作? – Ace
'secondFunc(5,0,$ array)'調用'secondFunc(5,1,$ array)'產生所需的結果 - 然後它必須將結果返回給它自己的調用者。這就是'return'在這裏所做的。 – Jon