У меня есть эта рекурсивная функция, которая вызывает себя до тех пор, пока число не достигнет итогового значения. Я сделал эту демонстрацию, чтобы показать рабочие, на самом деле запросы базы данных secondFunc() conatins. Я сохраняю значения в массиве, который передается secondFunc() из firstFunc(). Проблема в том, что когда я вызываю первую функцию, она показывает только одно значение 1. Если я раскомментирую var_dump во втором func, он отображает все значения. Я знаю, что делаю что-то неправильно. Пожалуйста, укажите мою ошибку. В чем проблема?Вызов рекурсивной функции из функции return only first value
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));
Demo http://codepad.viper-7.com/Bic8ce
С помощью возврата Ур дают значение обратно функционировать ? – Ace
'secondFunc (5, 0, $ array)' вызывает 'secondFunc (5, 1, $ array)' для получения желаемого результата - тогда он должен вернуть этот результат обратно своему собственному вызывающему. Вот что здесь делает 'return'. – Jon