2010-05-13 51 views
5

就「放棄錯誤」聲明的放置而言,下列哪項功能比另一項更好?PHP:在哪裏放置返回'假'值?

功能#1:

function equalToTwo($a, $b) 
{ 
    $c = $a + $b; 
    if($c == 2) 
    { 
     return true; 
    } 
    return false; 
} 

功能#2:

function equalToTwo($a, $b) 
{ 
    $c = $a + $b; 
    if($c == 2) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

謝謝!

+0

更可讀,我個人更喜歡#1,因其簡單...但是這幾乎是製表符與空格或vi與emacs的是有爭議的。 – scunliffe 2010-05-13 03:16:40

+0

@scunliffe:謝謝。我同意。我不知道這是如此有爭議的話題! – 2010-05-13 03:28:14

回答

9

這兩者之間沒有功能上的區別;你應該選擇哪一個最明顯和可讀。我通常會使用else。你的具體的例子應該寫成

return $c == 2; 
+2

好點。不要害怕在控制結構之外使用比較運算符。布爾值也是值! – 2010-05-13 03:16:39

+0

我接受你的答案,因爲你回答了這個問題,並提供了一個替代方案,在我看來,它更好! – 2010-05-13 03:27:26

0

注意他們之間沒有什麼區別。在我看來,它們都具有同等可讀性,並且沒有明顯的性能差異。

2

什麼剛:

return ($c == 2); 
2

在這種情況下,選擇何者更容易閱讀的你,因爲它是這樣一個小功能。

如遇有功能遠遠大於它通常是最好做這樣的事情...

function do($var=null) { 

    if ($var === null) { 
     return false; 
    } 

    // many lines of code 

} 

在這種情況下,它會事宜。馬上失敗。因爲它比...

function do($var=null) { 

    if ($var !== null) { 
     //many lines of code 
    } 
    else { 
     return false; 
    } 

} 
+0

謝謝,這是信息。 – 2010-05-13 03:36:09