在控制器

时间:2016-10-07 05:26:54

标签: php functional-programming

尝试在函数内调用函数。

它不会从第二个函数返回值。

当while循环中断时,函数将返回一个值,但它不会返回数组值。

<?php
function getdetails()
{
    $parentarray=array();
    $parentsid=2;
    array_push($parentarray,$parentsid);
    $getallparents=self::getparents($parentarray,$parentsid);
}

function getparents($parentarray,$parentsid)
{
    $this->db->select('*');
    $this->db->from('users');
    $this->db->where('user_id',$parentsid);
    $query = $this->db->get();
    $results = $query->result();
    $parentsid=$results[0]->parent_id;
    $var="true";
    while ($var=="true") {
        array_push($parentarray,$results);

        if($parentsid==0)
        {
            $var="false";
            $returnvalue=$parentarray;
        }
        else
        {
            $var="true";
            self::getparents($parentarray,$parentsid);
        }
    }
 return $returnvalue;
}
?>

3 个答案:

答案 0 :(得分:0)

更新

$returnvalue=$parentarray;

return $parentarray;

最终代码将如下所示。

function getparents($parentarray, $parentsid)
    {
        $this->db->select('*');
        $this->db->from('users');
        $this->db->where('user_id', $parentsid);
        $query = $this->db->get();
        $results = $query->result();
        $parentsid = $results[0]->parent_id;
        $var = true;
        while ($var == true) {
            array_push($parentarray, $results);

            if ($parentsid == 0) {
                $var = false;
                return $parentarray;
            } else {
                $var = true;
                self::getparents($parentarray, $parentsid);
            }
        }
    }
祝你好运:)

答案 1 :(得分:0)

因为您没有从第二个函数返回任何值。您只是将值分配给新变量。在第二个函数中使用return $parentarray;而不是$returnvalue=$parentarray;

答案 2 :(得分:0)

您正在使用静态概念调用实例方法。

将所有self::getparents更改为$this->getparents

BTW,functional-programming标签的原因是什么?它与该主题没有任何关系。