사이트 내 전체검색
PHP
switch
로빈아빠
https://cmd.kr/php/211 URL이 복사되었습니다.

본문

SWITCH문은 동일한 표현식의 IF문의 나열과 비슷하다. 다음 예는 동일한 것은 IF문과 SWITCH문으로 표현한 것이다. :

  1
  2 if ($i == 0) {
  3    print "i equals 0";
  4 }
  5 if ($i == 1) {
  6    print "i equals 1";
  7 }
  8 if ($i == 2) {
  9    print "i equals 2";
 10 }
 11 
 12 switch ($i) {
 13    case 0:
 14        print "i equals 0";
 15        break;
 16    case 1:
 17        print "i equals 1";
 18        break;
 19    case 2:
 20        print "i equals 2";
 21        break;
 22 }
 23     
 

SWITCH문은 문장 단위로 실행된다. SWITCH에 있는 평가식과 일치하는 CASE문을 찾아 그 이후 SWITCH블럭이 끝날 때 까지 실행한다. 따라서 원하는 경우 BREAK로 실행을 중지시킬 필요가 있다. 다음 예를 보자. :

  1
  2 switch ($i) {
  3    case 0:
  4        print "i equals 0";
  5    case 1:
  6        print "i equals 1";
  7    case 2:
  8        print "i equals 2";
  9 }
 10     
 

여기서 $i가 0이면 모든 print문을 실행할 것이다. 만약 $i가 1이면 마지막 두개의 print문을 실행한다. 따라서 여러분이 원하는 결과를 얻으려면 BREAK문을 잊지 않는 것이 중요한다.

특별한 case로 default case가 있다. 이 것은 다른 어떤 case에도 맞지 않는 경우를 의미한다. 예를 들어 :

  1
  2 switch ($i) {
  3    case 0:
  4        print "i equals 0";
  5        break;
  6    case 1:
  7        print "i equals 1";
  8        break;
  9    case 2:
 10        print "i equals 2";
 11        break;
 12    default:
 13        print "i is not equal to 0, 1 or 2";
 14 }
 15     
 

다른 중요한 점은 CASE 표현식에는 정수, 실수, 문자열의 스칼리 타입으로 평가되는 어떤 표현식이와도 된다는 것이다. 배열이나 객체도 문제를 일으키지는 않는다. 그러나 그것은 문장에서 의미가 없다.

switch 문에 대해서도 Alternative syntax가 지원된다. 자세한 내용은 Alternative syntax for control structures 를 살펴보자

  1
  2 switch ($i):
  3    case 0:
  4        print "i equals 0";
  5        break;
  6    case 1:
  7        print "i equals 1";
  8        break;
  9    case 2:
 10        print "i equals 2";
 11        break;
 12    default:
 13        print "i is not equal to 0, 1 or 2";
 14 endswitch;
 15

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=pht&wr_id=47

댓글목록

등록된 댓글이 없습니다.

PHP
871 (3/18P)

Search

Copyright © Cmd 명령어 18.223.210.219