2015-08-23 5 views
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) {'. Взгляните на [Прохождение по ссылке] (http://php.net/manual/en/language.references.pass.php) – Cyclonecode

+0

Привет, Cyclone, я пробовал, но показывает nth. Это дало мне 500 ошибок внутреннего сервера –

ответ

0

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

{ 
    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 оценивает быть ложным, все, что вы получите это первое значение массива array[0], как ожидалось.

+0

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

Смежные вопросы