首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么写易懂的代码-尽量不要再ifelse中嵌套ifesle

2012-12-19 
如何写易懂的代码--尽量不要再ifelse中嵌套ifesle由于搞二次开发骂过以前代码的作者,所以为了避免被人骂,

如何写易懂的代码--尽量不要再ifelse中嵌套ifesle

由于搞二次开发骂过以前代码的作者,所以为了避免被人骂,尝试写注释,发现注释多了代码更乱了。今天对一个函数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];}//-----------还有获取微博关注数未开发wblogreturn json_encode(array("code"=>"0",                         "message"=>"成功拉取数据",                         "qq"=>"{$qq}",                         "link"=>"{$link}",                         "score"=>"{$info['FScoreCount']}",                         "nick"=>"{$info['FNick']}",                         "wblog"=>"100000",                         "num"=>"{$picCount}",                         "pic"=>"{$pic}"));}

?效果很明显。

热点排行