![](/img/trans.png)
[英]calling x controller function inside a y controller function codeigniter
[英]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.