从函数返回一个值,基于条件,返回一个return语句与多个return语句

时间:2012-03-17 17:31:48

标签: php coding-style return

假设我们想要根据条件从函数返回一个值。我们可以通过两种方式实现:

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

2 个答案:

答案 0 :(得分:2)

我个人喜欢第二种方式,因为它更具可读性,你不会错过任何地方的返回语句,特别是如果你有复杂的if / else结构。

答案 1 :(得分:1)

我发现这更具可读性/清洁/可维护性,但这可能只是个人偏好的问题:

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

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

如果$ bar / return对象总是“一对一”,你也可以这样做:

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

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