이중 if 문

이중 if 문

QA

이중 if 문

답변 5

본문


 
    function coloringixwi($valll){
        $colorsett = '';
        $colorl = strlen($valll);
        if ($colorl>10) {
            if (strpos($valll,'car')||strpos($valll,'bycle')) {
                $colorsett = 'bad';
            }
        } else {
            if ($valll!=1000&&$valll!=1) {
                $colorsett = 'good';
            }
        }
        return $colorsett;
    }
 

 

if 문이 이중으로 있는데 좀 보기가 그래서요.
이럴때는 어떻게 해야 하나요?

이게 최선인가요??

코드 리뷰해주실분..

이 질문에 댓글 쓰기 :

답변 5

strpos 함수를 사용할때 찾을 단어가 처음에 올경우에는 반환값이 0 이라서 타입비교까지 해야됩니다.


function coloringixwi($valll){
    $colorsett = '';
    $colorl = strlen($valll);
    // 반환위치가 처음이라면 0을 반환함
    $pos = (strpos($valll,'car') !== false || strpos($valll,'bycle') !== false) ? true : false;

    if ($colorl>10 && $pos ) {
        $colorsett = 'bad';
    } else if ($valll!=1000 && $valll!=1){
        $colorsett = 'good';
    }
    return $colorsett;
}
echo coloringixwi('123456789').PHP_EOL;

echo coloringixwi('123456789car').PHP_EOL;
echo coloringixwi('car123456789').PHP_EOL; // 0
echo coloringixwi('12345car6789').PHP_EOL;
echo coloringixwi('123456789bycle').PHP_EOL;
echo coloringixwi('bycle123456789').PHP_EOL; // 0
echo coloringixwi(2);



...
 

    if ($colorl > 10 && (strpos($valll,'car')||strpos($valll,'bycle'))) {
        $colorsett = 'bad';
    }
    else if ($color1 <= 10 &&  ($valll!=1000&&$valll!=1)) {
        $colorsett = 'good';
    }

...

위에 플래토님이 잘 답변해주셧는데요.

 

if($colorl>10) 이렇게 쓰는것 보다는 

 

if(10<$colorl) 이렇게 쓰는 것이 더 좋습니다.

 

왜냐하면 보통 수학에서 10 < 20 <30 이렇게 대소비교를 하기 때문에

 

if(10<$colorl) 이렇게 쓰는 것이 더 직관적이고

 

사회적 통념에 맞게끔 작성된 것이기 때문에 가독성이 더 좋기 때문입니다.

저같은 경우 if문이 한줄인 경우 { } 는 생략하고 이렇게 씁니다

if ($colorl>10 && (strpos($valll,'car') !==false || strpos($valll,'bycle') !==false) ) $colorsett = 'bad';

else if ($colorl<=10 && $valll !=1000 && $valll !=1) $colorsett = 'good';
 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 336
© SIRSOFT
현재 페이지 제일 처음으로