所以,这很奇怪,我有一个名为treetrunk的方法,该方法运行父子关系,并且如果id作为“ branchPath”,则应该返回一个数组-该方法似乎在我的终止条件中显示为var_dump正常适当的数组。但是,如果我尝试调用该方法,则返回的数组为“ NULL”-我真的不明白。
建模方法:
function treeTrunk($id){//1st id in is page id
if($id == '0'){
var_dump($this->branchPath); //this shows perfect array
return $this->branchPath; //this returns null
}
else{
$q = $this->getWhere(array('id'=>$id),null,null);
array_push($this->branchPath, $q[0]['pageParent']);
$this->treeTrunk($q[0]['pageParent']);
}
}
通过控制器调用:
$d = $this->pages_mdl->treeTrunk('150');
var_dump($d); // <- this == NULL
方法内的var_dump输出“ array(3){[0] => string(3)” 148“ [1] => string(3)” 146“ [2] => string(1)” 0“}”
您没有else
部分退货。
else{
$q = $this->getWhere(array('id'=>$id),null,null);
array_push($this->branchPath, $q[0]['pageParent']);
$this->treeTrunk($q[0]['pageParent']);
}
应该
else{
$q = $this->getWhere(array('id'=>$id),null,null);
array_push($this->branchPath, $q[0]['pageParent']);
return $this->treeTrunk($q[0]['pageParent']);
}
正如您在问题中发布的那样,您正在传递150
给treeTrunk()
函数,因此它移至其他部分并为您提供null
结果。if
传递0
给treeTrunk()
函数时,该零件将进行评估。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句