尝试在函数内调用函数。
它不会从第二个函数返回值。
当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;
}
?>
答案 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
标签的原因是什么?它与该主题没有任何关系。