18 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
return (is_dir($this->dirPath) ? rmdir($this->dirPath) : false) ? true : false;
這種方式怎么樣?

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
應(yīng)該盡早 return
支持 +1,減少嵌套和圈復(fù)雜度,感覺還是挺不錯(cuò)的哦 (??ロ??)?? ~~

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
應(yīng)該盡早return,這樣可以簡化排錯(cuò)讀代碼時(shí)的難度,畢竟到第一行直接就return出去都下一個(gè)方法,總比讀完100行代碼發(fā)現(xiàn)只有第一行有用,要好的多

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
持相反意見,個(gè)人代碼習(xí)慣傾向于盡早將不適合的結(jié)果return
,最終底部的return
返回正常流程的結(jié)果。
一個(gè)顯著的效果是可以很大程度減少代碼的嵌套層數(shù),這比減少程序多個(gè)出口對于代碼可讀性的提高影響更大。
try...catch...
只用在數(shù)據(jù)庫事務(wù)的情況下,拋出異常并回退數(shù)據(jù)。

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
中立,團(tuán)隊(duì)自己達(dá)成一致就可以了。
運(yùn)行時(shí)差異并不大??勺x性是對人來說的,如果你使用IDE,比如PHPStorm來說,IDE可以很好的檢測出來是否邏輯上不可達(dá)的代碼或者區(qū)間空洞這種問題,如果你再使用 phpdoc 來規(guī)范你的return 類型,IDE可以直接給你標(biāo)記出來你的哪些返回是有問題的。如果你使用phpcs這種靜態(tài)掃描工具再結(jié)合IDE來一起工作的話,你會(huì)發(fā)現(xiàn),IDE給出的提示會(huì)非常詳細(xì)。。細(xì)到你不想使用。。。
如果你說的可讀性是指 文本編輯器 里的可讀性,你還是在團(tuán)隊(duì)里面規(guī)范下IDE的使用吧。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
觀點(diǎn)與你相反,函數(shù)中要盡可能多的使用 return 來控制,因?yàn)?return 從設(shè)計(jì)上來說就是這個(gè)功能,表示執(zhí)行權(quán)限的移交。這樣不會(huì)造成任何執(zhí)行權(quán)限的問題。所謂函數(shù),從設(shè)計(jì)之初,核心就是計(jì)算和返回。
濫用 try catch 會(huì)導(dǎo)致上級(jí) try catch 無法正確捕獲異常
語義化上來說,return 也比 try catch 更加清晰明了。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
function a($b){
$c = '';
if($b==1){
$c = 1;
}else if($b==2){
$c = 2;
}else{
$c = 0;
}
return $c;
}

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
防御式編程
<?php
function run($a) {
if (!conditionA($a)) return false;
if (!conditionB($a)) return false;
//...
return true
}

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
個(gè)人傾向于盡快return
的原則,特別是對于多層嵌套的if
和for
,能第二行return,絕不放第三行。
添加回答
舉報(bào)