for문은 조건식이 참일때까지 반복적으로 작업을 진행합니다.

 for (expr1; expr2; expr3) {
    statement;
 }

첫 번째(expr1)는 루프의 시작을 뜻합니다. 두 번째(expr2)는 조건식인데, expr1의 값에 영향을 받습니다.

expr1의 값을 대입하여 조건식이 참이면 루프를 멈추고, 거짓이면 expr3 값을 증감(++) 또는 차감(--)시키며 루프를 형성합니다.

if문처럼 "콜론(:) 문법"과 "짧은 문법"을 사용할 수 있습니다.

 // 괄호 문법
 for (expr1; expr2; expr3) {
    statement;
 }

 // 콜론 문법
 for (expr1; expr2; expr3) :
    statement;
 endfor;


 // 짧은 문법
 for (expr1; expr2; expr3)
    statement;

<?php 
 echo "<select name=\"sel\">\n"; 

 for ($=0; $i<=10; $++) { 
    echo "<option value=\"$i\">$i</option>\n"; 
 } 
 echo "</select>\n"; 

 /*  결과 
 <select name="sel"> 
 <option value="0">0</option> 
 <option value="1">1</option> 
 <option value="2">2</option> 
 <option value="3">3</option> 
 <option value="4">4</option> 
 <option value="5">5</option> 
 <option value="6">6</option> 
 <option value="7">7</option> 
 <option value="8">8</option> 
 <option value="9">9</option> 
 <option value="10">10</option> 
 </select> 
 */ 
 ?>

for문내에 중첩도 가능합니다. 다음은 중첩해서 구구단을 구현해 보았습니다.

<?php 
 echo "php 구구단 <br/><br/>\n"; 

 for ($i=2 ; $i <= 9 ; $i++) { 
     echo "$i 단 <br/>\n"; 

     for ($j=1; $j<=9;$j++)  { 
         echo "$i*$j=".$i*$j,"<br/>\n"; 
     } 
     echo "<br/>\n"; 
 } 
 ?>

C언어처럼 첫 번째 표현식(루프의 시작), 또는 세 번째 표현식을 공백으로 둘 수 있습니다. 그리고 두 번째 표현식(조건식)을 생략할 경우 "참"으로 인식하여 루프를 형성합니다.

<?php 
 $i = 1; 
 for (; ; ) { 
    if ($i > 10) { 
        break; 
    } 
   echo $i." "; 
   $i++; 
 } 

 // 결과: 1 2 3 4 5 6 7 8 9 10 
 ?>

<?php 
 for ($i = 1; ; $i++)  { 
    if ($i > 10) { 
        break; 
    } 
    echo $i." "; 
 } 

 // 결과: 1 2 3 4 5 6 7 8 9 10 
 ?>

아래 예제를 보면 조금 특별하게 표현할 수 있습니다.

<?php 
 for ($i = 1, $j = 0; $i <= 10; $j += 1, print("i($i) => j($j)<br/>\n"), $i++); 

 /* 출력: 
 i(1) => j(1) 
 i(2) => j(2) 
 i(3) => j(3) 
 i(4) => j(4) 
 i(5) => j(5) 
 i(6) => j(6) 
 i(7) => j(7) 
 i(8) => j(8) 
 i(9) => j(9) 
 i(10) => j(10) 
 */ 
 ?>

<?php 
 $people = Array('Kalle','Pierre','merray','Cals'); 
  
 for($i = 0, $size = sizeof($people); $i < $size; ++$i) { 
    echo $people[$i]." "; 
 } 

 // 출력: Kalle Pierre merray Cals 
 ?>

0 댓글