php 입문 | 제어 구문 | for문에 의한 복잡한 반복


반복 구문은 while보다 “for"라는 구문이 더 많이 사용된다. 이것은 단순한 조건의 설정뿐만 아니라 초기화 및 반복까지 한꺼번에 설정할 수있는 구문이다.

for (초기화 처리; 조건; 반복 후 처리) {
    ...... 반복 처리 ......
}

중괄호 대신 콜론(:)과 endfor를 사용할 수도 있다.

for (초기화 처리; 조건; 반복 후 처리):
    ...... 반복 처리 ......
endfor;

이 for 문은 다음 ()안에 3 개의 요소를 설명한다.

  • 첫 번째는 반복을 시작하기 전에 실행하는 것으로, 변수에 값을 할당하거나 반복을 위한 준비를 한다.
  • 두 번째는 반복 조건이다. 여기에 쓴 수식이나 값이 true이면 반복을 계속한다. false가되면 반복을 빠져 나온다.
  • 세 번째는 반복 부분의 처리를 실행한 후에 다음 반복으로 진행하기 전에 수행하는 처리이다. 이를테면 “반복 후 처리’라는 것이다. 반복마다 변수의 값을 증감하는데 주로 이용된다.

이 for 문은 작성 요소가 많기 때문에 실제로 몇번이나 써보고 하여 사용법에 익숙해지길 바란다.

아래에 예제를 보도록 하겠다.

<?php
    $total = 0;
    for($i = 1;$i <= 100;$i++){
        $total += $i;
    }
?>
<!DOCTYPE html>
<html lang="ko">
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
        <title>sample page</title>
    </head>
    <body>
        <h1>Hello PHP!</h1>
        <div>
            <?php echo "합계:" . $total; ?>
        </div>
    </body>
</html>

이는 앞서의 while 샘플 for를 사용 형태에 다시 작성한 것이다. 여기에서는

for ($i = 1; $i <= 100; $i ++) {...... 중략 ......}

이런 식으로 for를 쓰고 있다. 먼저 반복에 들어가기 전에 $i = 1을 실행하여 변수 $i에 1을 대입해 둔다. 그리고 $i <= 100가 true인(즉 $i가 100 이하)동안 반복을 계속하도록 하고 있다. 그리고 반복되면 $i++을 실행하여 $i의 값을 1 증가시킨다.

이렇게 변수 $i가 1부터 순차적으로 2,3 …… 이런식으로 늘리면서 반복을 계속하고 100을 넘으면 반복을 빠져 나가게 되어 있다.

for는 while보다 까다로운이지만, 이를 사용하면 반복을 위해 불필요한 일을 쓸 필요없이 스크립트를 깔끔하게 작성할 수 있게 된다.