繁体   English   中英

在控制器中的函数内调用函数

[英]Calling function inside a function in controller

试图在函数内调用函数。

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

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

更新

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

祝好运 :)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM