2011-02-17 2 views
22

이 스킵 $numbers = array(1,2,3,4,5,6,7,8,9)는 내가 PHP 배열을 현재 반복

내가 foreach는 foreach($numbers as $number)

을 사용하고이 위에 반복하고 경우 경우 if($number == 4)

코드의 라인이 그 후 무엇을 할 것 문이 그 줄 다음에 아무것도 건너 뛰고 5시에 루프를 시작하겠습니까? 휴식, 반환, 종료?

답변

51

당신은 continue 성명을 찾고 있습니다. 루프를 완전히 종료하는 유용한 break도 있습니다. 두 문 모두 루프의 모든 변형과 함께 작동합니다. for, foreachwhile.

$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
foreach($numbers as $number) { 
    if ($number == 4) { continue; } 
    // ... snip 
} 
+0

아, 계속의 감사, 내 모든 위에서 언급 한 옵션을 시도했다처럼 . asap을 받아 들일 것입니다 – Hailwood

+0

''계속하지 않는 것이 잘못된 코딩 방법으로 간주됩니까? 'goto'와 같은 이유로 ... –

+0

정말로. 점프는 나쁘지 않습니다. 'goto'는 실제로 응용 프로그램에서 어디서든 문자 그대로 사용할 수있게 해주는 언어로 구현되었습니다. 함수 호출, 조건문, 분기를 소개하는 것은 모두 점프를 사용하며 괜찮습니다. 'continue'는 잘 정의 된 유즈 케이스를 가지고 있습니다. 괜찮아. 만약 '깨뜨림'이 더 심하면. –

7
continue; 

은 현재 반복 블록을 생략하도록 지시하지만, 루프의 나머지에 계속 계속합니다. 모든 장면에서 작동합니다 (for, while 등)

+0

* "현재 반복 블록을 건너 뛰지 만 나머지 루프는 계속 진행합니다."* 감사합니다. 매우 명확한 표현 방법입니다. – Alvaro

0

브레이크에서보세요; 루프를 멈추고 컴파일러 밖에서 루프를 만듭니다. 계속하는 동안; 현재 하나 건너 뛰고 다음 사이클로 이동합니다.

$i = 0; 
while ($i++) 
{ 
    if ($i == 3) 
    { 
     continue; 
    } 
    if ($i == 5) 
    { 
     break; 
    } 
    echo $i . "\n"; 
} 

는 출력 :

1 
2 
4 
6