簡體   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