Как вернуть массив из функции?

1

Эта функция была в порядке для вчерашнего дня, я понятия не имею, почему она не может вернуть значение массива сейчас.

Я попытался выгрузить значение в Xxxx... результат был идеальным... но когда я дамп перед возвратом $ downlinesArray (последний возврат), я получаю только первый массив [0] value... который переходит от другой функции... Я понятия не имею, почему... может кто-нибудь указать на это?

И после того, как он возвращает массив, я ничего не получаю с другой стороны. Который вызывает эту функцию и получает значение массива.

function findEntireGroupDownlinesMemberID($downlinesArray, $index)
{
    $downlineDB = $this->getDistributorInformation($downlinesArray[$index]);
    if ($downlineDB) {
Xxxx
        if ($downlineDB->getLeftPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getLeftPositionDistCode());
        }

        if ($downlineDB->getRightPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getRightPositionDistCode());
        }
        $index++;
        return $this->findEntireGroupDownlinesMemberID($downlinesArray, $index);
    }
    return $downlinesArray;
}
  • 0
    Вам нужно передать массив с помощью ссылочной function findEntireGroupDownlineMemberID(&$downlinesArray, $index) { . Посмотрите на Передача по ссылке
  • 0
    Привет Циклон, я пробовал, но показывает н-й. Это дало мне 500 внутренних ошибок сервера
Теги:
arrays
function
return

1 ответ

0

Если вам нужно изменить исходный массив $downlinesArray, вам нужно передать его в свою функцию по ссылке. Также вы получаете сообщение об ошибке, потому что ваш код никогда не достигает второго оператора возврата. Проверьте фрагмент:

{
    if ($downlineDB) {  //if this is true, the 2nd return statement will never get executed.
    Xxxx
        if ($downlineDB->getLeftPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getLeftPositionDistCode());
        }

        if ($downlineDB->getRightPositionDistCode()) {
            array_push($downlinesArray, $downlineDB->getRightPositionDistCode());
        }
         $index++;
         return $this->findEntireGroupDownlinesMemberID($downlinesArray, $index);  //function exits here
    }
    return $downlinesArray;
}

И когда $downlineDB оценивается как false, все, что вы получаете, это первый массив значений array[0] как и ожидалось.

  • 0
    Привет, Никет, да. Это на самом деле я хочу этого. Он будет зацикливаться до тех пор, пока не будет спущен, а затем вернет весь массив обратно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню