PHP - Почему моя функция ничего не возвращает - PullRequest
0 голосов
/ 13 января 2020

Я вызываю функцию сама. Существует множество повторений макс и счетчик повторов. Функция вызывает себя, пока не достигнет точки, в которой счетчик повторения равен максимальному повторению. Если я раскомментирую сообщения внутри функции, я вижу, что все работает как надо. Но если я хочу вернуть массив позиций, результата нет:

function myFunction($positions, $maxRepeats, $repeatCounter = 0){

    if($repeatCounter < $maxRepeats){
        // echo 'Test message - loop ' . $repeatCounter;

        $positions[] = array('title' => $repeatCounter);
        $repeatCounter++;
        myFunction($positions,$maxRepeats,$repeatCounter);

    } else {

        // echo 'Test message - end ' . $repeatCounter;
        return $positions;

    }

}

$positions = array();
$result = myFunction($positions,2);

print_r($result);

Спасибо за любую идею.

1 Ответ

1 голос
/ 13 января 2020

Потому что, если это условие истинно:

if($repeatCounter < $maxRepeats)

, тогда функция никогда не встречает оператор return. Похоже, вы хотели вернуть рекурсивный результат:

return myFunction($positions,$maxRepeats,$repeatCounter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...