我训练我的大脑并研究算法。
$array = [
'0'=> 1,
'1'=> 2,
'2'=> 3,
'3'=> 4,
'4'=> 5,
];
function reverse(array $array,$index = null)
{
static $reverse_array = []; //новый массив для данных
if(is_null($index)){
$index = count($array) -1; //Для первого запуска. Если у нас не передан Index, тогда мы берем кличество элементов -1
}
if($index < 0) { //Если индекс меньше нуля, тогда мы прошли последний 0-вой элемент и мы окончили работу. Возвращаем массив с реверсными данными.
return $reverse_array;
}
$reverse_array[] = $array[$index]; //Записываем в наш новый массив данные в обратном порядке согласно индексу.
reverse($array,$index - 1); //Вызываем заново нашу функцию с уменьшеным индексом.
return $reverse_array; // !!! тут суть вопроса. #СТРОКА НОМЕР 22
}
var_dump(reverse($array));
问题:如果我们不返回第 22 行中的数组,那么当我们转储它时,将返回 NULL,尽管我们在索引 0(最后一次调用)处有一个高于该条件的条件,但我们返回递归结果并停止工作。
我缺少什么?