Home » PHP -5. 제어문

PHP -5. 제어문

5.1. if문

  • if(expr) statement
    : expr은 논리(Boolean)값으로 취급되면 TRUE일 경우 statement를 수행한다.
  • if(expr) { statement1 } else { statement2 }
    : expr은 논리(Boolean)값으로 취급되면 TRUE일 경우 statement1을 FALSE일 경우 statement2를
    수행한다.
  • if(expr) { statement1 } elseif { statement2 } else { statement3 }
    : if ~ else와 같지만 중간에 if가 하나 더 들어간 형태이다.
    : PHP에서는 else 다음에 if가 나올 경우 elseif와 같은 형태로 붙여 써야 한다.
    [php]
    <?php
    if ($a == 5) {
    echo "a는 5와 같다";
    echo "…";
    } elseif ($a == 6) {
    echo "a는 6과 같다";
    echo "!!!";
    } else {
    echo "a는 5도 아니고 6도 아니다";
    }
    ?>
    [/php]

5.2. while문

  • while (expr) statement
    : PHP에서 제일 간단한 루프형이다.
    : expr이 계속 true이면 statement가 반복 수행된다.
    [php]
    <?php
    $i = 1;
    while ($i <= 10) {
    echo $i++; /* 출력하는 값은 증가하기 전의 $i입니다.
    (post-increment) */
    }
    ?>
    [/php]

5.3. do ~ while문

  • do { statement } while (expr)
    : 시작부분이 아니라 각 반복(iteration)의 끝부분에서 표현식(expr)이 참인지 체크한다.
    : 일반적인 while문과의 주요한 차이점은 do-while문의 첫 번째 반복이 반드시 수행 된다는
    것이다.
    [php]
    <?php
    $i = 0;
    do {
    echo $i;
    } while ($i > 0);
    ?>
    [/php]

5.4. for문

  • for (expr1; expr2; expr3) { statement }
    : 첫번째 표현식(expr1)은 루프의 시작에서 바로 조건없이 수행된다.
    : 각 반복(iteration)의 시작부분에서 expr2이 수행된다.
    이 표현식이 TRUE이면 루프는 계속되고 statement가 수행된다. FALSE이면, 루프 수행을 멈춘다.
    : expr3표현식은 각 반복의 끝부분에서 수행된다.
    [php]
    <?php
    for ($i = 1; $i <= 10; $i++) {
    echo $i;
    }
    ?>
    [/php]

5.5. foreach문

  • foreach (array_expression as $value) { statement }
    : array_expression에서 주어진 배열에 대해 루프를 돈다.
    각 루프에서 현재 배열 원소의 값은 $value 로 지정되고 내부적인 배열 포인터는 하나씩 이동하게 된다
  • foreach (array_expression as $key => $value) { statement }
    : 위의 루프와 같은 일을 한다. 단 현재 배열 원소의 key값은 각 루프의 $key변수로 지정된다.
    : foreach문이 처음 실행할때, 내부적인 배열 포인터는 자동적으로 배열의 첫번째 원소로 리셋된다. 따라서 foreach절 이전에 reset()함수를 호출할 필요는 없다.
    [php]
    <?php
    $arr = array(1, 2, 3, 4);
    foreach ($arr as &$value) {
    $value = $value * 2;
    }
    // $arr은 이제 array(2, 4, 6, 8)입니다.
    unset($value); // 마지막 원소로 참조를 제거합니다.
    ?>
    [/php]

5.6. switch문

  • switch문은 하나의 변수(또는 표현식)으로 다른 많은 값과 비교할 필요가 있을 경우 사용된다.
    [php]
    <?php
    if ($i == 0) {
    echo "i는 0";
    } elseif ($i == 1) {
    echo "i는 1";
    } elseif ($i == 2) {
    echo "i는 2";
    }
    //위의 if문 경우 아래 switch문 같이 할 수 있다.
    switch ($i) {
    case 0:
    echo "i는 0";
    break;
    case 1:
    echo "i는 1";
    break;
    case 2:
    echo "i는 2";
    break;
    }
    ?>
    [/php]

5.7. break문

  • break문은 루프를 강제로 탈출하기 위해서 사용된다.
    : for, foreach, while, do-while 또는 switch절의 수행을 멈추고 벗어나게 한다.
    [php]
    <?php
    $i = 0;
    while (++$i) {
    switch ($i) {
    case 5:
    echo "At 5<br />\n";
    break 1; /* switch만 빠져나갑니다. */
    case 10:
    echo "At 10; quitting<br />\n";
    break 2; /* switch와 while을 빠져나갑니다. */
    default:
    break;
    }
    }
    ?>
    [/php]

5.8. continue문

  • continue문은 break문과 비슷하지만 루프를 완전히 벗어나는 것이 아닌 continue문의 밑에
    부분을 생략 후 다시 루프문의 조건이 충족될 때 까지 반복 실행 한다.
    [php]
    <?php
    for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
    continue;
    print "$i\n"; //결과는 0,1,3,4가 찍힌다.
    }
    ?>
    [/php]

5.9. return문

  • 함수안에서 호출된다면, 현재 함수의 수행을 즉시 끝내고, 함수 호출 결과값으로 return의
    인수값을 넘겨준다.
  • 전역 유효범위에서 호출된다면, 현재 스크립트 파일의 수행을 끝마친다.

5.10. include문, require문

  • 특정 파일을 인클루드 하고, 적용시킨다.
  • require()는 실패시에 치명적인 E_ERROR 등급 오류가 발생한다는 점을 제외하면, include()와
    동일하며 include()는 경고만 발생하고 계속 진행되지만 require()는 에러 발생 후 중단된다.

5.11. include_once문, require_once문

  • PHP가 파일을 이미 포함하였는지 확인하여 다시 include(require)하지 않는 점을 제외하면
    include와 동일하다.