如何从函数返回数组?

时间:2015-08-23 14:04:08

标签: php arrays function return

昨天这个功能还可以,我不知道它为什么现在不能返回数组值。

我试图在Xxxx上转储出来的值......结果很完美......但是当我在返回$ dumplinesArray(最后一次返回)之前转储时我只得到第一个数组[0]值...这是传递来自另一个功能...我不知道为什么......任何人都可以指出它吗?

在它返回数组之后,我从另一方面得不到任何东西。这是调用此函数并获取数组值。

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;
}

1 个答案:

答案 0 :(得分:0)

如果您需要修改原始$downlinesArray数组,则需要将其传递给函数by its reference。 您也会收到错误,因为您的代码永远不会到达第二个return语句。检查代码段:

{
    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]