채택완료

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

2020-06-27 (토) 08:05:04 2,783

안녕하세요

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

정말 감사드립니다.

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

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

예를들어

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

<img src="hansik.jpg">

}

?>

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

<img src="china.jpg">

}

?>

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

<img src="india.jpg">

}

?>

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

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

감사합니다!

|

답변 3개 / 댓글 2개

채택된 답변
+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개

2020-06-27 (토) 09:23:53
dragon님 답변 감사드립니다.
switch문으로 바꿔줘야겠네요
정말 많은 도움이되었습니다.

즐거운 주말되세요^^
2020-06-27 (토) 09:35:19
이런 설명 너무 좋아요 ㅎㅎ
2020-06-27 (토) 14:18:21

BiHon님 답변 감사드립니다.

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

즐거운 주말되세요^^

2020-06-27 (토) 13:01:26

채택 답변처럼 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 오류 없이 진행.

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