for 문이나 foreach 문을 탈출하는 명령어는 break 인데
continue 문은 continue 를 만나면 for 문이나 foreach 문의 시작점으로 가라는 의미다.
즉 echo("key : $key, value = $value <br />"); 는 실행되지 않는다는 것이다.
if문의 조건은 참인가 거짓인가를 판별해서 참이면 if문을 수행하고 거짓이면 if문은 수행되지 않는다.
if ($key % 2) 의 의미는 2로 나눈 나머지가 있으면 참이 되어 if문이 실행되고, 나머지가 0인 경우에는 거짓이므로 수행되지 않는다.
$arr = array("zero", "one", "two", "three", "four", "five"); 에서 배열 키를 지정하지 않으면 기본으로 숫자 0부터 시작된다. (배열 키=>값 : 0=>'zero', 1=>'one', 2=>'two', .... )
결과는 배열키 0,2,4 를 가진 zero, two, four 출력
key : 0, value = zero
key : 2, value = two
key : 4, value = four
만약 위의 조건을 if(($key % 2) == 0) 로 설정했다면
결과는 배열키 1,3,5 를 가진 one, three, five 가 출력된다.
그럼 아래 예제에서는 어떤 결과가 나올까?
<?php
$arr = array("zero", "one", "two", "three", "four", "five");
foreach($arr as $key => $value) {
if($key / 2)
continue; // continue 문은 현재 루프를 중단하고 바로 다음 루프로 가라
echo("key : $key, value = $value <br />");
}
?>
결과는
key : 0, value = zero
<?php
for($cnt=0 ;$cnt <=5 ; $cnt++){ //$cnt가 5가 될때까지 반복한다
if($cnt == 3){ // 만약 $cnt 가 3 이면 아래와 같은 문구를 실행한다
echo "지금은 3번입니다.<br />";
continue;
}
echo "$cnt <br />";
}
?>
결과는
0
1
2
지금은 3번입니다.
4
5
<?php
for($cnt=0 ;$cnt <=5 ; $cnt++){ // $cnt가 5가 될 때까지 반복한다
if($cnt == 3) { // 만약 $cnt가 3 이면 아래와 같은 문구를 실행한다
echo "지금은 3번입니다.<br />";
break; //조건을 만족하면 루프를 탈출한다.
}
echo "$cnt <br />";
}
?>
결과는
0
1
2
지금은 3번입니다.