중첩된 If Else 문을 배열로 바꾸기

중첩된 If Else 문을 배열로 바꾸기



Early return 및 Array Approach의 사용이 고려됩니다.

다른 경우 중첩됨



나는 우리가 그러한 중첩된 코드를 작성했거나 본 적이 있다고 확신합니다.

보기에 유쾌하지 않습니다.

public function checkData($var){
    if (isset($var)){
          if ($var==1){
              return 'one';
          }
          elseif($var==2){
              return 'two';
          }
          elseif($var==3){
              return 'three';
          }
          elseif($var==4){
              return 'four';
          }    
    }
    else{
     return 'null';
    }

}



우리는 그것을 더 좋게 만들 수 있습니다

조기 귀국




public function checkData($var){
    if (!isset($var)){
        return 'null';
    }
    if ($var==1){
        return 'one';
    }
    if($var==2){
        return 'two';
    }
    if($var==3){
        return 'three';
    }
    if($var==4){
        return 'four';
    }
}



어레이 접근법




public function checkData($var){
    $array = [
    '1'=>'one',
    '2'=>'two',
    '3'=>'three',
    '4'=>'four',
    ];
    return $array[$var] ?? 'null'; 
}


배열 접근 방식은 중첩된 If Else에 비해 업데이트하기 쉽고 이해하기 쉽습니다.

조기 반환도 매우 잘 작동합니다!

배열 접근 방식은 메서드에도 사용할 수 있습니다.

조기 귀국 방법 호출




public function checkData($var){
    if (!isset($var)){
        return $this->nullMethod($var);
    }
    if ($var==1){
        return $this->oneMethod($var);
    }
    if($var==2){
        return $this->twoMethod($var);
    }
    if($var==3){
        return $this->threeMethod($var);
    }
    if($var==4){
        return $this->fourMethod($var);
    }
}



배열 접근 방식 호출




public function checkData($var){
 $array_methods = [
    '1'=>'oneMethod',
    '2'=>'twoMethod',
    '3'=>'threeMethod',
    '4'=>'fourMethod',
    ];
    return $this->{$array_methods[$var]($var)};

    //to simplify, break it down
    $method=$array_methods[$var];
    return $this->{$method}($var);
}

좋은 웹페이지 즐겨찾기