2012-07-10 102 views
0

比方說一個實例我有這樣的功能:爲什麼有些省略else語句?

function isValid($premise){ 
    if($premise == 'foo') 
    { 
     return true; 
    } 

    return false; 
} 

正如你可以看到省略else語句,否則它是緊跟return語句。爲什麼有些人忽略他們?這是一個糟糕的編程習慣嗎?

+1

我想應該說,這不僅是因爲'return'報表的作品,沒有他們忽略別人也不會產生相同的結果。爲此,我認爲包含else語句只是爲了清楚你打算做什麼是一個好習慣。 – vikki 2012-07-10 05:18:46

回答

5

將生成相同的代碼,但不會丟失else。這是一個風格和偏好的問題。

就個人而言,當在長功能開始時檢查某些條件時,我傾向於省略else只有

我不認爲這是不好的做法。有些情況會使代碼更清晰。

3

這兩種情況下的行爲和運行時完全相同 - 它純粹是一種文體選擇。

也許試試programmers.stackexchange.com進一步討論哪種風格更好。

+0

這是一個糟糕的編程習慣嗎? – Michelle 2012-07-10 04:54:23

+1

**在我看來,**通常最好包含一個'else'(或'elseif'),特別是在嵌套邏輯時,這樣控制流就清晰了。這只是我的看法 - 你的目標應該是:a)儘可能讓代碼最容易理解,b)保持合理的一致性。因此,在這種情況下,請考慮您認爲哪些內容更清晰,並與整個項目代碼中的選擇保持一致。 – Cam 2012-07-10 05:09:25

1

因爲返回終止/中斷功能。

如果if條件執行則提供,然後通過返回true來終止函數。 ,如果if不運行,則它將繼續返回false。

在你的代碼

function isValid($premise){ 
    if($premise == 'foo') 
    { 
     return true;//terminated the function and no more function is going to run 
    } 

    return false;//if it is running then it is very clear that if condition has not run because if it would have run then the if condition didn't run }