根据条件从函数返回值,一个返回语句与多个返回语句


Returning a value from a function, based on condition, one return statement vs. many return statements

假设我们想要从一个基于条件的函数返回一个值。我们可以通过两种方式做到这一点:

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结构)?谢谢

就我个人而言,我喜欢第二种方式,因为它可读性更强,而且您不会在任何地方错过返回语句,尤其是当您有复杂的if/else结构时。

我发现这更可读/更干净/更可维护,但这可能只是个人性能的问题:

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

如果$bar/report的通信总是"一对一"的,你也可以这样做:

function foo($bar)
{
  $ar_matches = array(
      'value1' => 'baz',
      'value2' => 'qux'
    );
  if (isset($ar_matches[$bar])
    return $ar_matches[$bar];
}