while
(PHP 4, PHP 5)
while 루프는 PHP에서 가장 간단한 루프 유형입니다. C 언어에서와 동일하게 동작합니다. while 문의 기본 형식은 다음과 같습니다.
while (expr) statement
while 문의 의미는 매우 간단합니다. 이는 PHP가 while 표현식의 값만큼 중첩된 루프 문을 반복적으로 실행하도록 지시합니다. 사실입니다. 루프가 시작될 때마다 표현식의 값을 확인하므로 루프 문 도중에 값이 변경되더라도 루프가 끝날 때까지 문 실행이 중단되지 않습니다. while 표현식의 값이 처음에 FALSE인 경우 루프 문이 한 번도 실행되지 않는 경우가 있습니다.
if 문과 마찬가지로 중괄호를 사용하여 문 그룹을 while 루프로 묶거나 대체 구문을 사용할 수 있습니다.
while (expr): statement ... endwhile;
다음 두 예는 다음과 같습니다. 완전히 동일, 1부터 10까지 숫자 표시:
<?php /* example 1 */ $i = 1; while ($i <= 10) { echo $i++; /* the printed value would be $i before the increment (post-increment) */ } /* example 2 */ $i = 1; while ($i <= 10): print $i; $i++; endwhile; ?>
do-while
(PHP 4, PHP 5)
do-while 루프 및 while 루프 표현식의 값이 시작 부분이 아닌 각 루프의 끝에서 확인된다는 점을 제외하면 매우 유사합니다. 일반적인 while 루프와의 주요 차이점은 do-while 루프 문이 한 번 실행된다는 것입니다(각 루프 후에 표현식의 진리값이 확인됩니다). 그러나 일반적인 while 루프에서는 이것이 반드시 그런 것은 아닙니다( 표현식의 진리값은 루프 시작 시 확인되며, 처음에 FALSE이면 전체 루프가 즉시 종료됩니다.
do-while 루프에는 구문이 하나만 있습니다.
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
위 루프는 정확히 한 번 실행됩니다. 첫 번째 루프 이후 표현식을 확인할 때 true이기 때문입니다. 이면 해당 값은 FALSE($i는 0보다 크지 않음)이며 루프가 종료됩니다.
경험이 풍부한 C 언어 사용자는 do-while(0) 안에 명령문을 넣고 루프 내부에서 break 문을 사용하여 실행 루프를 종료하는 다른 do-while 루프 사용법에 익숙할 수 있습니다. 다음 코드 조각은 이 방법을 보여줍니다.
<?php do { if ($i < 5) { echo "i is not big enough"; break; } $i *= $factor; if ($i < $minimum_limit) { break; } echo "i is ok"; /* process i */ } while(0); ?>
이해가 바로 이해되지 않더라도 걱정하지 마세요. 이 "기능"을 사용하지 않고도 강력한 코드를 작성할 수 있습니다. PHP 5.3.0부터는 goto를 사용하여 루프에서 벗어날 수도 있습니다.