Эта функция была в порядке для вчерашнего дня, я понятия не имею, почему она не может вернуть значение массива сейчас.
Я попытался выгрузить значение в 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;
}
Если вам нужно изменить исходный массив $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]
как и ожидалось.
function findEntireGroupDownlineMemberID(&$downlinesArray, $index) {
. Посмотрите на Передача по ссылке