【问题标题】:Returning a value from a function, based on condition, one return statement vs. many return statements [closed]根据条件,一个返回语句与多个返回语句从函数返回一个值[关闭]
【发布时间】:2012-04-02 21:00:39
【问题描述】:

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

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

【问题讨论】:

  • 没有办法更好。我更喜欢第一个示例,因为它足够清楚并且避免了 $result 变量。

标签: php coding-style return


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2015-08-14
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多