찾다

 >  Q&A  >  본문

php - 一个函数里面用一个return 好 还是多个return 好?

<?php


 function dmeo1($num)
 {
    if($num>0)
    {
        return true;
    }
    else
    {
        return false;
    }
 }




 function dmeo2($num)
 {    
    $status = null;

    if($num>0)
    {
       $status  = true;
    }
    else
    {
       $status  = false;
    }

    return $status;
 }
巴扎黑巴扎黑2819일 전879

모든 응답(21)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-10 15:26:26

    尽早return,不要走多余的流程

    php// 一般情况
    function foo($num) {
        if ($num>0) {
            return true;
        }
        return false;
    }
    
    
    // 特殊情况:正好需要返回bool值
    function bar($num) {
        return $num>0;
    }
    

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 15:26:26

    你的代码很好,我帮你重写了一遍:

    原始代码:

    javascriptfunction dmeo1($num)
    {
        if($num>0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    

    重写一遍:

    javascriptfunction dmeo1($num)
    {
        flag = $num > 0;
    
        if(flag === true)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    

    代码思路瞬间清晰了。

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 15:26:26

    多少return没关系,要保持代码的高度简洁易懂

    function dmeo($num) {
        return $num > 0;
    }
    

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 15:26:26

    function dmeo3($num)
    {
        return $num>0;
    }
    

    灵活的根据结构定

    회신하다
    0
  • PHPz

    PHPz2017-04-10 15:26:26

    function dmeo($num)
     {
        return $num>0;   
     }
    

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:26:26

    那个没有高亮的是“returm”?

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-10 15:26:26

    除去 guard condition 型的 return, 多个 return 是不是说明函数复杂了, 职责过多而需要重新考虑设计了.

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 15:26:26

    尽早返回。。。

    회신하다
    0
  • 黄舟

    黄舟2017-04-10 15:26:26

    该return的时间就return,也没有强制说几个return不好,毕竟一个return代表的是一个逻辑片段,所以其实只要逻辑清晰,代码清晰就够了!

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 15:26:26

    应该尽早输出return,这样会提高效率,就是说本来你经确定数据已得到,对于之后的代码,执行的意义也不大

    회신하다
    0
  • 취소회신하다