求助,一个递归问题。非常简单的一个,怎么写都不对了

浏览:493 发布日期:2014/12/30 分类:求助交流
function getCerId($cerid,$zid){
//获取证书编号用的函数。$cerid是根据最新时间传递过来的一个证书编号,后面的zid是用来判别用户组的。
        $newCer='';
        if ($zid!=1){
            $newCer=$cerid?$cerid+1:26001000;
            if($newCer>26999970){
                $this->error("证书号用完了");
            }
        }else{
           ...
        }
        $isExit=M('User')->where(array('certificateId'=>$newCer))->find();//防止时间出现错误,进行重新查询一遍数据库,如果证书号存在的话,就再执行一次函数加1获取新的。(更新证书号的时候,会更新一个专门的时间字段,用来帮助查找最新的cerid)
        if($isExit){
            $newCer=getCerId($newCer,$zid);
        }else{
            //在这里可以echo出最新的证书编号。但是控制器的时候得不到
            return $newCer;
        }
    }
现在的情况是,我在调用这个函数的时候,如果这个函数执行一次递归,不递归则得到的正常,那么控制器中得到的是null。
$newCer=getCerId($cer,$zid);//控制器中调用
上面的函数我放到控制器中,使用$this调用同类下的函数也是得到null。
最佳答案
评论( 相关
后面还有条评论,点击查看>>