if 조건문을 많이 써도 속도에 큰 문제가 없을지 여쭙습니다. 채택완료

5년 전 조회 2,638

안녕하세요

sir에서 매번 도움을 받고있는 회원입니다.

정말 감사드립니다.

 

다름이아니라 궁금한점이 생겨 질문드리게되었습니다.

if 조건문을 많이 써도 속도에 큰 문제가 없을지 여쭙습니다.

예를들어

<? if($data == "한식"){

<img src="hansik.jpg">

}

?>

<? if($data == "중식"){

<img src="china.jpg">

}

?>

<? if($data == "인도식"){

<img src="india.jpg">

}

?>

 

이런식으로 50개 100개이상 조건식을 써줘도

이용자들이 사용할 때 속도면에서 문제가 없을지 여쭙습니다.

감사합니다!

답변 3개

채택된 답변
+20 포인트

if 문은 한번씩 다 확인을 합니다.

조건씩이 많을때는   switch 을 쓰며는 조건이 맞으면

바로 빠지니깐  속도면에서 유리합니다.

아래와 같이 사용 합니다.

 

<?php
switch($data){
    case '한식':echo '<img src="hansik.jpg">' ; break;
    case '중식':echo '<img src="china.jpg">' ; break;
    case '인도식' :echo '<img src="india.jpg">' ; break;
    ..
    ..
    ..
    default : echo '<i class="fa fa-file" aria-hidden="true"></i>';
    break;
}
?>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

dragon님 답변 감사드립니다.
switch문으로 바꿔줘야겠네요
정말 많은 도움이되었습니다.

즐거운 주말되세요^^
이런 설명 너무 좋아요 ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

BiHon님 답변 감사드립니다.

작업중인데 도움이 많이되었습니다.

즐거운 주말되세요^^

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

채택 답변처럼 switch()문을 써도 되고, if/elseif문을 써도 됩니다.

- https://www.php.net/manual/en/control-structures.elseif.php

- http://docs.php.net/manual/kr/control-structures.elseif.php

참고로 좀 더 간단한 방법 소개합니다.

Copy
$food_data = [

  '한식'=>'hansik',

  '중식'=>'china',

  '인도식'=>'india', // 마지막 , 있어도 무방

  // 편하게 추가, 수정, 삭제

];

if ( isset($data) && isset($food_data[$data]) ) printf('<img src="%s.jpg">', $food_data[$data]); // ※

else echo '<img src="none.jpg">'; // 지정된 데이터 없을 때

// ※ $data 변수 체크까지 하면, $data 변수가 할당되어 있지 않아도 Notice 오류 없이 진행.
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고