자유게시판

초보가 또 하나 배웁니다.. php switch에서 범위 검색이 되네요.

홀민2019.01.29 01:50조회 수 122댓글 9

    • 글자 크기
switch ($value) {     case 'AA':      echo "value equals 1"; 

이렇게만 사용해왔는데....



이렇게도 되네요..

switch (true) {
    case (($view['wr_5'] >= "0") && ($view['wr_5'] < "100")) : echo "100 까지<br />"; $pieces_color = 'green'; break;
    case (($view['wr_5'] >= "101") && ($view['wr_5'] < "300")) : echo "300 까지<br />"; $pieces_color = 'blue'; break;
    case (($view['wr_5'] >= "501") && ($view['wr_5'] < "800")) : echo "800 까지<br />"; $pieces_color = 'orange'; break;
    case (($view['wr_5'] >= "801") && ($view['wr_5'] < "10000")) : echo "800 이상<br />"; $pieces_color = 'red'; break;
//    case (($view['wr_5'] >= "801") && ($view['wr_5'] < "2000")) : echo "2000 까지<br />"; $pieces_color = 'green'; break;
//    case (($view['wr_5'] >= "2001") && ($view['wr_5'] < "10000")) : echo "10000 까지<br />"; $pieces_color = 'green'; break;
}


하나 배웠음.


    • 글자 크기
게임에 문제가 생겼습니다! (by BVC_Liper_Okbul) 발표 무사히 마쳤습니다! (by 허니버터뚠뚜니라이츄)
  • 2019.1.29 08:59

    인터프리터 언어의 장점(?)이죠. 인터프리터 언어에서 스위치문은 사실상 중첩if문과 다를게 없음..

  • @joyfuI
    홀민글쓴이
    2019.1.29 09:01

    보통은 if 문 쓰는데 선택지가 더 추가 되지 않을때 swich 를 사용하는데 크기 비교를 저렇게 한다는건 첨알았습니다.ㅋㅋㅋ

    제가 배우적이 없다보니 기초도 없고..ㅠㅠ

     

  • 2019.1.29 19:45

    솔직히 말하면 저런 방법보다는 if else 중첩문을 쓰는 것이 더 좋습니다.

  • @humit
    홀민글쓴이
    2019.1.29 19:48

    근가요..?

    머 보기 이뻐서 그랬지만

    다 이유가 있으니 if문을 많이 쓰겠죠

     

    넵 조언 감사합니다

  • @humit
    2019.1.30 18:38

    오오~ 그렇군요!!

    http://www.fluffycat.com/PHP-Design-Patterns/PHP-Performance-Tuning-if-VS-switch/

    이 결과처럼 퍼포먼스 차원에서 if else가 우위에 있기 때문인가요??

  • @이니스프리
    2019.1.30 19:36

    이전 버전에서는 모르겠지만 PHP7 에서는 if else 구문과 매우 유사하게 동작을 합니다.

    if else 구문에서는 조건을 비교하고 만족하면 아래를 실행하고 만족하지 않으면 다음 조건을 체크하는 방식으로 되어 있습니다.

    반면 switch case 구문에서는 조건들을 차례로 체크를 한 다음에 만족하는 경우가 나오면 해당 조건에 해당하는 구문으로 점프를 해서 실행하도록 되어 있습니다.

     

    제가 if else 중첩문을 쓰는 것을 권장하는 이유는 다른 언어에서는 비슷한 문법을 제공하지만 해당 기능을 제공해주지 않고 있기 때문에 그렇습니다. PHP manual을 보더라도 해당 사항이 나와있지는 않기 때문에 나중에 해당 부분을 지원하지 않을 수도 있다는 의미입니다. 예시로도 case 부분에 상수 값만 체크하는 경우만 나와있고 식이 들어간 경우는 없습니다.

     

    그러므로 나중에 해당 기능을 지원하지 않는 방향으로 바뀌게 된다면 코드를 전부 고쳐서 사용해야 하기 때문에 그렇습니다.

  • @humit
    2019.1.30 22:33

    그렇군요! 상세히 설명해주셔서 감사합니다 ^^

    매뉴얼에 switch case 구문에서 식이 들어간 경우가 없다는 것은 처음 알았네요~

    deprecated 되는 것이 정말 무서운 것 같아요 ㅠㅠ

    PHP 업그레이드 했는데 조건문 때문에 문제가 생기면 당혹스럽겠네요 ㄷㄷ

    그나저나 phantomjs도 deprecated 되는 것 같더군요 ㅜㅜ

  • @이니스프리
    홀민글쓴이
    2019.1.31 01:43

    먼소린지...영어 장애자라ㅠㅠ

  • 홀민글쓴이
    2019.1.31 01:43

    흠 humit 님 말씀 잘 알아 들었습니다.

    아무래도 안정적인게 좋겠죠..ㅋㅋ

댓글 달기

번호 제목 글쓴이 날짜 조회 수
공지 회원 전용 페이지가 생겼습니다.15 마스터 2018.03.20 5392
공지 슬기로운 포인트 벌이를 하는 법43 네모 2018.06.17 1344
4372 요번 pc는 부품 따로 주문해서 조립해야갯습니다3 핫슈 2019.01.30 47
4371 스포어를 활용하여 사용할 수 있는 언어는 뭐가 있을까요?7 워시퍼 2019.01.30 91
4370 드디어... 1500포를!1 아이리스링 2019.01.29 47
4369 게임에 문제가 생겼습니다!2 BVC_Liper_Okbul 2019.01.29 58
초보가 또 하나 배웁니다.. php switch에서 범위 검색이 되네요.9 홀민 2019.01.29 122
4367 발표 무사히 마쳤습니다!7 title: 케라몬(널 디도스할거야!)허니버터뚠뚜니라이츄 2019.01.29 75
4366 현재 전략 게임 상황...?6 BVC_Liper_Okbul 2019.01.28 53
4365 우와 가입한지 24시간도 안지나서 1000포인트 돌파!7 아이리스링 2019.01.27 109
4364 글만 읽어도 포인트를 주니 좋네요.3 아이리스링 2019.01.27 64
4363 200 땄어요1 아이리스링 2019.01.27 52
4362 내일이 고비네요.3 title: 케라몬(널 디도스할거야!)허니버터뚠뚜니라이츄 2019.01.27 57
4361 전략게임 상황입니다아아!20 BVC_Liper_Okbul 2019.01.27 109
4360 흑 손해봤다.10 아이리스링 2019.01.26 78
4359 안녕하세요 방금 가입했습니다.9 아이리스링 2019.01.26 58
4358 100만점 달성!17 네모 2019.01.26 127
4357 평소 안하던 짓을 하는중입니다. BVC_Liper_Okbul 2019.01.26 38
4356 갤럭시s10 유출 되엇내요 ^^ 3월 기대됩니다.3 핫슈 2019.01.26 56
4355 뭐니뭐니해도 서버튜닝이 제일 중요하다고 생각합니다9 title: 만렙이 되어보자도토리묵 2019.01.26 113
4354 아싸 이제 포고하면서 카톡할수있다!!!18 title: 케라몬(널 디도스할거야!)허니버터뚠뚜니라이츄 2019.01.25 132
4353 수학공부 체불을 빡세게 상환하고 있습니다.11 title: 애프터 이펙트제르엘 2019.01.25 93
이전 1 ... 3 4 5 6 7 8 9 10 11 12... 226다음
첨부 (0)
서버에 요청 중입니다. 잠시만 기다려 주십시오...