Я что-то упускаю? При попытке реализовать алгоритм я не могу получить возвращаемое значение для функции. Первоначально, пытаясь вернуть массив, с которым я столкнулся, простые типы не будут работать.
ПРИМЕЧАНИЕ. Это упрощенная версия, чтобы проиллюстрировать эту точку. Я знаю, что для иллюстрированного кода можно использовать нечто вроде print_r (array_map (function ($ x) {return $ x + 2;}, array (2, 4, 6, 8))); но это не будет сделано в полной проблеме.
И на вопрос. У меня есть следующий код:
function recursive1($myArray, $accumulator){ if(empty($myArray)){ return $accumulator; } else { recursive1(array_slice($myArray, 1), $accumulator+1); } } $testArray = array(3, 5, 7, 9); print("->".recursive1($testArray,10)."<-\n");
Получение нуля в результате
(output) -><-
Добавление немного, чтобы увидеть внутренности, которые у меня есть
function recursive1($myArray, $accumulator){ if(empty($myArray)){ print("[".$accumulator."]\n"); // End result return $accumulator; } else { print("<".$accumulator.">"); // partial results recursive1(array_slice($myArray, 1), $accumulator+1); } } $testArray = array(3, 5, 7, 9); print("->".recursive1($testArray,10)."<-\n");
Я получаю, что функция, которую он выполняет, что она предполагает, но возвращаемое значение теряется.
(output) <10><11><12><13>[14] -><-
Поэтому я должен был
(output) ->14<-
Кстати, я использую
>php -version PHP 5.5.30 (cli) (built: Oct 23 2015 17:21:45) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0 Copyright (c) 1998-2015 Zend Technologies
Я также попытался присвоить значение переменной (вне функции) безрезультатно.
Есть идеи? 🙂