2014-07-19 29 views
0

有兩種方式或更多我可以使該功能 一爲什麼是使用更多的回報和返回每次我不需要繼續功能和另一種方式是使用 更多ifs,否則ifs ,elses,PHP的編碼風格比較vs返回

function getCountOfWhatEverMethodType1 
{ 
    $return = false; 
    // ---- 
    if($user->isLogged) 
    { 
     if(getDBOBlaBla->equal(1)) 
     { 
      $return = 2; 
     } 
     else if(getDBOBlaBla->equal(2)) 
     { 
      $return = 3; 
     } 
     else 
     { 
      $return = 1; 
     } 
    } 
    // ---- 
    return $return; 
} 

function getCountOfWhatEverMethodType2 
{ 
    if(!$user->isLogged) 
    { 
     return false; 
    } 
    $return = 1; 
    // ---- 
    if(getDBOBlaBla->equal(1)) 
    { 
     $return = 2; 
    } 
    else if(getDBOBlaBla->equal(2)) 
    { 
     $return = 3; 
    } 
    // ---- 
    return $return; 
} 

一個我應該使用,爲什麼?

回答

0

如果你想返回某些東西,通常最好的選擇是在條件滿足時返回一些東西。

我會做這種方式:

function getCountOfWhatEverMethodType3() 
{ 
    if(!$user->isLogged) 
    { 
     return false; 
    } 

    // ---- 

    if(getDBOBlaBla->equal(1)) 
    { 
     return 2; 
    } 
    if(getDBOBlaBla->equal(2)) 
    { 
     return 3; 
    } 

    return 1; 
} 

對我來說,這種風格是有兩個原因更好:

  1. 您可以刪除一些的if/else statments因此你就可以更快,有如果您需要修改或分析該代碼,則代碼較少

  2. 您不需要創建臨時變量,因爲您不需要它們。

事實上,每個人都有自己的編碼偏好,如果所有的工作都可以使用它們中的任何一個。但即使看看你以前的代碼 - 你犯了一些錯誤(使用null是不必要的),並使用上述版本,這將是更難做到這樣的錯誤

+0

嘿感謝我更新了代碼之前我犯了一些錯誤 – user3301396

+0

@ user3301396我已更新我的代碼然後 –

+0

我看到,但我仍然不明白爲什麼是更好(如果它)使用2或1內的Type3 – user3301396