不要再ifelse中嵌套ifesle
简介:这是不要再ifelse中嵌套ifesle的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=333684' scrolling='no'>由于搞二次开发骂过以前代码的作者,所以为了避免被人骂,尝试写注释,发现注释多了代码更乱了。今天对一个函数code review,总结了一个以前看到过的经验:尽量不要再ifelse中嵌套ifelse。
下面贴图,贴代码对比一下。
code review前:
/** * 获取用户信息 * @return link为邀请链接, * score为积分, * nick为昵称, * num为作品数,以此确定分页数量, * opus1为当前页第一副作品图片, * opus2当前页第二幅作品图片地址, * opus3当前页第三幅作品 */ public function uinfoAction(){ $random = $this->request->getGetParameter('random');//随机数 $pwd = $this->request->getGetParameter('pwd');//私钥 //$page = $this->request->getGetParameter('page',1);//当前页面 //验证flash请求是否正确 if($pwd==md5("tenwowactqqcom@tenwow123".$random)){ //验证qq是否登录 if (TMAuthUtils::isLogin()){ $qq = TMAuthUtils::getUin(); $link = TMLibHtmlHelper::urlJump(TMConfig::BASE_URL,$qq,1,TMConfig::TAMS_ID);//邀请好友链接 $service = new TMService(); $info = $service->selectOne(array('FQQ'=>$qq),'FScoreCount,FNick','Tbl_User');//获取昵称 //flash方要求全部获取数据 /*$number = ($page-1)*3; $count = count($service->select(array("FQQ"=>$qq),'*','Tbl_File')); $list = $service->select(array("FQQ"=>$qq),"FUrl",'Tbl_File',array($number,3),array('orderby'=>'FFileId DESC'));*/ //判断$list是否为空 $count = count($service->select(array("FQQ"=>$qq),'*','Tbl_File')); $list = $service->select(array("FQQ"=>$qq),"FUrl",'Tbl_File'); $pic = array();//图片地址数组 foreach ($list as $li){ $li[0] = TMConfig::BASE_URL."data/".$li[0]; $pic[]=$li[0]; } return json_encode(array('code'=>'0', 'message'=>'成功拉取数据', 'qq'=>"$qq", 'link'=>$link, 'score'=>$info['FScoreCount'], 'nick'=>$info['FNick'], 'wblog'=>"1000", 'num'=>"$count", 'pic'=>$pic, )); }else{ return json_encode(array("code"=>'1','message'=>'对不起,您还没有登录!')); }//endif 验证qq是否登录 }else{ return json_encode(array("code"=>'2','message'=>'请从合法链接参与游戏!')); }//endif 验证flash请求是否正确 }
code review之后:
/** * 获取用户信息 * @return code string 返回信息代码 * message string 返回信息 * qq string 用户QQ * link string 邀请好友参加活动的链接 * score string 活动当前的积分数 * nick string 用户昵称 * wblog string 微博关注数 * num string 当前作品总数 * pic array 作品地址 */ public function uinfoAction(){ $random = $this->request->getGetParameter('random');//随机数 $pwd = $this->request->getGetParameter("pwd");//私钥 //判断是否从合法链接参与游戏 if($pwd!=md5("tenwowactqqcom@tenwow123".$random)){ return json_encode(array("code"=>"2","message"=>"请从合法链接参与游戏!")); } //判断是否登录 if(!TMAuthUtils::isLogin()){ return json_encode(array("code"=>"1","message"=>"对不起,您还没有登录!")); } $qq = TMAuthUtils::getUin();//获取登录QQ $link = TMLibHtmlHelper::urlJump(TMConfig::BASE_URL,$qq,1,TMConfig::TAMS_ID);//获取邀请链接 $service = new TMService();//创建操作数据的对象 $info = $service->selectOne(array("FQQ"=>$qq),"FScoreCount,FNick","Tbl_User");//获取登录QQ昵称,活动积分 $picCount = count($service->select(array("FQQ"=>$qq),"FUrl","Tbl_File"));//获取当前作品数 $pic = array();//初始化图片地址数组 $list = $service->select(array("FQQ"=>$qq),"FUrl","Tbl_File");//获取图片地址 //由于select查询出来的是二维数组,要将其取出放到$pic中 foreach($list as $li){ $pic[]=TMConfig::BASE_URL."data/".$li[0]; } //-----------还有获取微博关注数未开发wblog return json_encode(array("code"=>"0", "message"=>"成功拉取数据", "qq"=>"{$qq}", "link"=>"{$link}", "score"=>"{$info['FScoreCount']}", "nick"=>"{$info['FNick']}", "wblog"=>"100000", "num"=>"{$picCount}", "pic"=>"{$pic}")); }效果很明显。