PHP

PHP

    ›기초 문법

    eBook

    • eBook 다운로드

    개발 환경 만들기

    • PHP 시작하기
    • 윈도우용 APM 설치
    • 리눅스용 APM 설치
    • 에디터 설치하기
    • APM 환경 테스트

    기초 문법

    • PHP 동작 방식
    • PHP는 무엇인가?
    • PHP 모드와 HTML 모드
    • 변수 - 진리값, 정수,실수,문자열
    • 변수 - 배열, 객체, 널
    • 변수의 종류와 외부로부터의 변수
    • 식별자
    • 변수의 범위
    • 상수
    • 연산자
    • 연산자 우선순위
    • if
    • while, for, continue, break, switch
    • 제어 구조 - include , require , return
    • 함수

    while, for, continue, break, switch

    제어구조

    while

    while은 어떤 블록을 계속적으로 반복해야 할 때 사용합니다.
    이렇게 블록을 반복하여 수행하는 것을 루프라고 하는데,
    while의 경우 조건절이 참일 경우 무한 반복하게 됩니다.

    <?php  
        $i = 1;  
        while ($i <= 10) { 
          //구문이 참이면.. 중괄호부분을 무한반복 
          echo $i++; //$i 가 1씩 계속 증가하니 10번 반복하면 끝나겠지요? 
        } 
    ?>  
    
    12345678910
    

    위의 소스에서 보시다시피 변수 $i는 실행시마다 1씩 증가하며..
    구문은 변수 $i의 값을 매번 체크하여 참일 경우 다시 실행 시키게 됩니다.
    따라서 while 구문은 10번 실행후 자동 종료됩니다. ^^

    뭔소린지 아시겠죠? ^^;; 하핫..

    do .. while

    do .. while 구문은 while 문과 유사하며..
    조건절이 뒤에 있기 때문에 반드시 한번은 실행을 된다는 차이가 있습니다.

    <?php  
        $i = 0;  
        do { //우선 한번 무조건 실행하고 본다.. 
          echo $i;  
        } while ($i >0) // $i 가 0보다 크면 다시 반복  
    ?>  
    
    0
    

    무조건 한번 실행하고 조건절을 판단하므로 위와 같은 결과를 내게 됩니다.
    만약 while 문을 썼다면 아무 결과도 안나왔겠죠.
    while 의 경우엔 처음부터 조건절을 확인하여 참인 경우만 반복하기 때문입니다.

    프로그래밍에서는 제어구조가 정말 중요합니다.
    고등학교 수학시간에 배운 순서도 처럼 프로그래밍은 만들려고 하는 프로그램의
    전체 흐름을 파악하는 것이 매우 중요합니다.
    이러한 흐름을 잘 파악하고 제대로 표현할 수 있어야 유능한 프로그래머가 되겠죠? ^^;;;

    for

    for 문은 while과 같은 루프입니다.

    for (expr1; expr2; expr3) statement

    와 같은 형식을 가지며.. expr1 이 무조건 한번 실행된 후에..
    expr2 조건을 검사합니다.
    expr2가 참이면 statement를 실행하고 statement가 모두 실행되면 expr3를 실행합니다.
    ( 뭔말인지 모르시겠죠? ^^;;;; )

    소스를 보시면 쉽게 이해하실 수 있을 것입니다.

    <?php
      /* 아래는 모두 1 부터 10까지 출력하는 프로그램입니다.
          그 차이를 한번씩 생각해 보세요..
          가장 일반적인 방법은 첫번째 방법입니다.
      */
      
      for ($i=1; $i <=10; $i++) {
          echo $i;
      }
      
      
      for ($i = 1;;$i++) {
          if ($i >10 ) {
              break; // 루프를 빠져나감
          }
          echo $i;
      }
    
      $i=1;
      for (;;) { 
          if ($i > 10) {
              break;
          }
          echo $i;
          $i++;
      }
    
      for ( $i = 1; $i <= 10; print $i,$i++ ) ;
      //print는 되는데.. echo는 안되네요...
    ?>
    

    나머지 세 방법은 일단은 이렇게도 할 수 있구나 정도로 이해하시면 됩니다.

    break

    break 문은 위에서 배운 for 와 앞서 배운 while 같은 루프를 빠져나오는 명령입니다.
    위의 소스에서 보듯이 (14번째줄) 변수 $i가 10보다 커지면.. break에 의해 for 문을 빠져나오게 됩니다.
    (switch 문을 벗어날 때도 break를 씁니다. 아래에서 배움)

    continue

    continue는 break와 달리 루프의 처음으로 돌려 보내는 명령입니다.

    <?php  
    $i = 0;  
    while ($i++ < 3) { //세번만 실행해보도록 하겠습니다. echo "첫번째 루프<br>\n";  
         while (1) {  
            echo "  두번째 루프<br>\n";  
             while (1) {  
                  echo "  세번째 루프<br>\n";  
                  continue 3;  
             }  
             echo "절대 안나오지롱~<br>\n";  
        }  
        echo "나도 나오게 해줘 제발~ ㅜㅜ<br>\n";  
    }  
    ?>
    
    첫번째 루프
    두번째 루프
    세번째 루프
    첫번째 루프
    두번째 루프
    세번째 루프
    첫번째 루프
    두번째 루프
    세번째 루프
    

    위 소스에서 보듯이 (9째줄) continue 다음에 숫자 옵션을 추가하여..
    루프를 몇 단계 벗어날지도 설정할 수 있습니다.
    세단계 루프를 벗어나니까.. 11번째줄과 13번째줄은 절대 프린트가 안되겠죠? ^^

    switch

    다음은 switch 문을 if 문으로 표현한 것입니다. 소스를 보시면 쉽게 이해되실거예요^^

    <?php  
    if ($i == 0) {  
        print "i 는 0";  
    }  
    if ($i == 1) {  
        print "i 는 1";  
    }  
    if ($i == 2) {  
        print "i 는 2";  
    }  
      
    //위의 if 구문과 아래 switch문은 같습니다.  
    switch ($i) {  
        case 0:  
            print "i 는 0";  
            break;   
        case 1:  
            print "i 는 1";  
            break;  
        case 2:  
            print "i 는 2";  
            break;  
    }  
    ?>
    

    위 소스에서 보듯이 switch 문은 if 문을 여러 개 정렬해놓은 것과 같습니다.
    예를 들면 90점은 A 80점은 B 70은 C 같이 등급을 매길 때 유용하게 쓸 수 있습니다.
    근데.. 50점 이하는 모두 F를 주고 싶은데.. 귀찮게 50 40 30 .. 모두 case를 만들기가 그렇죠?
    이럴 때 default를 쓰면 됩니다. case로 지정안된 모든 값은 default 값으로 정해지는 거죠
    case 처럼 default : 이렇게 쓰면 되구요.. break는 쓸 필요가 없습니다.

    <?php  
    if ($i == 0) {  
        print "i 는 0";  
    }  
    elseif ($i == 1) {  
        print "i 는 1";  
    }  
    elseif ($i == 2) {  
        print "i 는 2";  
    }  
    else {  
        print "i는 0,1,2가 아니다";  
    }  
      
    switch ($i) {  
        case 0:  
            print "i 는 0";  
            break;   
        case 1:  
            print "i 는 1";  
            break;  
        case 2:  
            print "i 는 2";  
            break;  
        default :  
            print "i는 0,1,2 가 아니다";  
    }  
    ?>
    

    if 구문과 비교하면서 잘 생각해 보세요..^^

    Last updated on 2020-5-14 by Myeongjin Cho
    ← if제어 구조 - include , require , return →
    • 제어구조
      • while
      • do .. while
      • for
      • break
      • continue
      • switch
    커뮤니티
    PHP 공식 웹사이트한국 PHP 개발자 커뮤니티
    유용한 정보
    책 소스 코드
    Copyright © 2020 EZPHP.NET