2012-03-17 145 views
1

假設我們想從基於條件的函數返回一個值。我們可以用兩種方法做到:根據條件從函數返回值,返回語句與許多返回語句的對比

function foo($bar) { 
    if ($bar == 'value1') { 
     return 'baz'; 
    } 
    else if ($bar == 'value2') { 
     return 'qux'; 
    } 
} 

function foo($bar) { 
    $result = ''; 

    if ($bar == 'value1') { 
     $result = 'baz'; 
    } 
    else if ($bar == 'value2') { 
     $result = 'qux'; 
    } 

    return $result; 
} 

我個人比較喜歡第二種方法。
哪種方法比較好(特別是考慮更長的if/else結構)? 謝謝。

+3

沒有辦法*更好*。我更喜歡第一個例子,因爲它足夠清楚並且避免了'$ result'變量。 – alex 2012-03-17 17:32:38

回答

2

個人而言,我喜歡第二種方式,因爲它更具可讀性,您不會錯過任何地方的返回語句,特別是在複雜的if/else結構時。

1

我覺得這是更可讀/清潔/維護,但它可能只是個人的親景的問題:

function foo($bar) 
{ 
    if ($bar == 'value1') 
    return 'baz'; 

    if ($bar == 'value2') 
    return 'qux'; 
} 

你可以做的一樣好,如果$酒吧/回報correspondencies總是「之一一個「:

function foo($bar) 
{ 
    $ar_matches = array(
     'value1' => 'baz', 
     'value2' => 'qux' 
    ); 

    if (isset($ar_matches[$bar]) 
    return $ar_matches[$bar]; 
}