public function gettopcateid($cate_id){ $pid=db('cate')->where('cate_id',$cate_id)->find(); if($pid['cate_pid']!=0){ $this->gettopcateid($pid['cate_pid']); } return $pid['cate_id']; }
上面这个函数在调用时获得的值总是null,原因是因为在递归时没有加return返回一下
解决有两个办法:1、给递归函数加上return
2、或者把$pid定义成静态的
public function gettopcateid($cate_id){ //static $pid; $pid=db('cate')->where('cate_id',$cate_id)->find(); if($pid['cate_pid']!=0){ return $this->gettopcateid($pid['cate_pid']); } return $pid['cate_id']; }