2012-03-17 110 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]; 
}