print_r (PHP 4, PHP 5)

mixed print_r ( mixed expr [, bool return ] )

print_r은 배열을 읽기 편하게 출력해 주는 함수로 내부적으로 출력 버퍼링에 의해 키와 원소를 가지런히 보여주는 형식으로 값을 mixed에 출력해 줍니다. 이는 print와는 분명 다르다는 것을 알 수 있습니다. print는 보전된 문자열을 출력해주는 언어구조로 보지만 print_r은 함수로 분류해야 합니다.

 <pre>
 
<?php
 $a 
= array (
   
'a' => 'apple''b' => 'banana'
    'c' => array ('x''y''z'
));
 
print_r ($a
);

 
/* 결과:
 <pre>
 Array
 (
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
 )
 </pre>
 */
 
?>
 </pre>

필요하다면 내부적 출력값을 변수에 저장하여 외부적으로 사용할 수 있습니다. 변수에 저장하고자 할때는 true를 입력해야 하고, 정의하지 않으면 1이라는 값을 가지게 되는데, 내부적으로 버퍼링되어 출력될 것입니다.

 <?php
 
// 외부적 출력값을 변수에 저장할때 true를 정의합니다.
 
$expr 'test'
;
 
$str print_r($exprtrue
);

 echo 
"$str"
// 결과: test

 // 정의하지 않으면 1이라는 값을 갖게 됩니다.
 
$expr 'test'
;
 
$str print_r($expr
);

 echo 
"$str"
// 결과: test 1

 
?>

 <?php
 $b 
= array (
 
'm' => 'monkey'
 
'foo' => 'bar'
 
'x' => array ('x''y''z'
));
 
$results print_r($btrue
);

 echo 
"반환값은 아래와 같습니다. \n"
;
 echo 
$results
;

 
/* 출력:
 반환값은 아래와 같습니다.
 Array
 (
    [m] => monkey
    [foo] => bar
    [x] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
 )
 */
 
?>


for문은 조건식이 참일때까지 루프를 진행시킵니다. 반복문중 가장 많이 사용되는 문법이기는 하나 조건식을 잘못 코딩할 경우 무한루프를 형성하여 서버다운이라는 심각한 문제에까지 발생할 수 있다는 점에 주의가 필요할 만큼 단순하면서도 복잡합니다.

for문 형식
 for (expr1; expr2; expr3) {
    statement;
 }

첫번째 표현식(expr1)은 루프의 시작을 뜻합니다. 두번째 표현식(expr2)은 조건식으로 expr1의 값에 영향을 받습니다. expr1의 값을 대입하여 조건식이 참이면 루프를 멈추고, 거짓이면 expr3값을 증감(++) 또는 차감(--)시키며 루프를 형성합니다.

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

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

예제 (ex #1
 <?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=$i <= $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."&nbsp;"
;
   
$i
++;
 }

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

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

 
// 결과: 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]."&nbsp;"
;
 }

 
// 출력: Kalle Pierre merray Cals
 
?>