第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何優(yōu)化php代碼結(jié)構(gòu)

如何優(yōu)化php代碼結(jié)構(gòu)

ibeautiful 2019-04-16 20:26:13
每次調(diào)用方法后,都需要驗(yàn)證返回值來(lái)決定返回還是繼續(xù)執(zhí)行,以下代碼如何調(diào)整會(huì)好些?/***執(zhí)行業(yè)務(wù)邏輯*@param$action執(zhí)行方法*@param$allParams*@returnarray|bool*/publicstaticfunctionparseMore($action,$allParams){//用戶登錄請(qǐng)求數(shù)據(jù)解析$inputs=self::userLoginParse($allParams);//驗(yàn)證if(self::$_errorNo!=StatusCode::STATUS_TRUE)returnarray();if($inputs===false)returnfalse;//調(diào)用業(yè)務(wù)方法$result=call_user_func(array("Frontier",strtolower($action)),$inputs);//驗(yàn)證if(self::$_errorNo!=StatusCode::STATUS_TRUE)returnarray();if($result===false)returnfalse;returnarray($action=>$result);}
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)場(chǎng)景下應(yīng)該使用異常而不是返回值。
包括userLoginParse和那個(gè)call_user_func的動(dòng)態(tài)方法,看上去都在用self::$_errorNo傳遞錯(cuò)誤狀態(tài),這是連C/C++都不推薦的糟糕模式(全局變量傳遞錯(cuò)誤碼)
這段代碼或許應(yīng)該長(zhǎng)這樣
publicstaticfunctionparseMore($action,$allParams)
{
try{
$inputs=self::userLoginParse($allParams);
}catch(EmptyInputException$e){
returnarray();
}
$result=call_user_func(array("Frontier",strtolower($action)),$inputs);
returnarray(
$action=>$result
);
}
或許應(yīng)該長(zhǎng)這樣
publicstaticfunctionparseMore($action,$allParams)
{
$inputs=self::userLoginParse($allParams);
if($inputs===null){
returnarray();
}
$result=call_user_func(array("Frontier",strtolower($action)),$inputs);
returnarray(
$action=>$result
);
}
取決于那個(gè)returnarray();的分支和userLoginParse的業(yè)務(wù)
我通常判斷一個(gè)函數(shù)返回bool是否合理是這樣判斷的
a)bool和其他類(lèi)型混合:一定不合理。比如題主這種場(chǎng)景應(yīng)該用異常,比如查詢XXX返回對(duì)象/false應(yīng)該用null
b)看函數(shù)名字,如果不能改叫isXXX,hasXXX等回答是否的疑問(wèn)句,八成有問(wèn)題
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

我會(huì)考慮如下2個(gè)方法:
1、把檢查的地方剝離出來(lái),單獨(dú)寫(xiě)個(gè)方法,用來(lái)檢查$_errorNo和返回值
2、在調(diào)用的方法里,拋出異常而不是returnfalse,然后外面catch住,根據(jù)異常的code來(lái)判斷返回false還是空數(shù)組
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 375 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)