我写了这样一段代码,这是一个类里面的方法
function getTopMenu($id) {
$map['id'] = $id ;
$menu = $this->where($map)->find();
//dump($menu);
if($menu['pid'] > 0) {
$this->getTopMenu($menu['pid']);
}
return $menu ;
}
本来我想要的$menu的值是最后一次执行这个函数的结果(顶级分类),可是这个返回的是第一次执行的结果,我始终不明白这是为什么?
function getTopMenu($id) {
$map['id'] = $id ;
$menu = $this->where($map)->find();
//dump($menu);
if($menu['pid'] > 0) {
$this->getTopMenu($menu['pid']);
}
return $menu ;
}
本来我想要的$menu的值是最后一次执行这个函数的结果(顶级分类),可是这个返回的是第一次执行的结果,我始终不明白这是为什么?
$map['id'] = $id ;
$menu = $this->where($map)->find();
//dump($menu);
if($menu['pid'] > 0) {
$menu = $this->getTopMenu($menu['pid']);
}
return $menu ;
}
$map['id'] = $id ;
$menu = $this->where($map)->find();
//dump($menu);
if($menu['pid'] > 0) {
$this->getTopMenu($menu['pid']); //2、但这里调用时没有接收返回值
}
return $menu ; //1、你的方法有返回值
}
$menu 是一个数组
如果 if($menu['pid'] > 0) 总是成立的话,getTopMenu 会一层一层的向下搜索
最终应是一个级联的数组,但也可以降维成二维(或一维)数组。要看你的需要了你总得是先有期望的结果,然后再去写程序吧?
不能是程序出什么就算是什么的!
$map['id'] = $id ;
$menu = $this->where($map)->find();
//dump($menu);
if($menu['pid'] > 0) {
return $this->getTopMenu($menu['pid']);//如果是取顶级的menu,加个返回
}
return $menu ;
}