Я попытался сбросить массив внутри функции, и я получил все необходимое значение. Но после возврата в $ uplines он показывает мне null. Понятия не имею почему. Пробовал 2 массива, используя список ($ array1, $ array2), но для меня все еще null. Может ли кто-нибудь указать мне? если они ошибаются. Спасибо и ура!
$uplines= $this->getTotalUpline($member,$level,$array1,$no);
Вот функция:
function getTotalUpline($member,$count,$array1,$no)
{
$memberUplineId = $member->getUplineDistId();
$c = new Criteria();
$c->add(MlmDistributorPeer::DISTRIBUTOR_ID,$memberUplineId);
$exist = MlmDistributorPeer::doSelectOne($c);
if($exist && $memberUplineId != 1)
{
$array1[$count][0] = $exist->getDistributorId();
$array1[$count][1] = $exist->getAccountType();
$count++;
$this->getTotalUpline($exist,$count,$array1,$no);
}
elseif($memberUplineId == 1)
{
var_dump($array1);
return $array1;
}
}
Я исправил проблему. Сделайте массив ссылкой в параметре функции.
$this-> getTotalUpline ($ член, уровень $, $ массив1, $ нет);
================================================== ===================== Есть два способа исправить проблему, добавить '&' в параметр функции
1) функция getTotalUpline ($ member, $ count и $ array1, $ no)
или добавить еще один "возврат" внутри оператора if
2) $this-> getTotalUpline ($ exist, $ count, $ array1, $ no);
Полная функция:
function getTotalUpline($member,$count,$array1,$no)
{
$memberUplineId = $member->getUplineDistId();
$c = new Criteria();
$c->add(MlmDistributorPeer::DISTRIBUTOR_ID,$memberUplineId);
$exist = MlmDistributorPeer::doSelectOne($c);
if($exist && $memberUplineId != 1)
{
$array1[$count][0] = $exist->getDistributorId();
$array1[$count][1] = $exist->getAccountType();
$count++;
return $this->getTotalUpline($exist,$count,$array1,$no);
}
return $array1;
}
Возможный указатель: вы возвращаете $ array1 в блок elseif. если условие ложно, то возвращаемое по умолчанию значение равно NULL (без явного возврата)
elseif($memberUplineId == 1)
{
var_dump($array1);
return $array1;
}
If block
не возвращаетarray
пожалуйста, добавьте к нему. Или добавить в конце функции.