이전 기사에서는 PHP의 여러 루프 제어 구조(while 루프, do-while 루프, for 루프 및 foreach 루프)에 대해 알아보고 for 루프 문과 foreach를 소개했습니다. 루프 문을 사용하여 배열을 순회할 수 있습니다. 관심이 있으시면 링크를 클릭하여 모두에게 도움이 되기를 바랍니다.
루프 문은 조건이 충족되면 반복적으로 작업을 수행할 수 있지만 때로는 조건이 충족되었지만 루프가 아직 끝나지 않은 경우에도 루프에서 빠져나와야 합니다. 그렇다면 PHP에서 루프를 벗어나는 방법은 무엇입니까? 오늘은 루프에서 벗어나는 5가지 방법인 continue 문, break 문, goto 문, die()/exit() 문, return 문을 알려드리겠습니다.
방법 1: continue 문 사용
continue 문의 기능은 이 루프에서 빠져나온 후 다음 루프를 실행하는 것입니다(continu 문 뒤의 코드를 버리고 다음 루프로 진행).
아래 코드 예시를 살펴보겠습니다.
예제 1: 1에서 10 사이의 모든 짝수 출력(짝수는 2로 나눌 수 있음)
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 != 0) { continue; } echo $i.' <br>'; } ?>
분석:
for ($i = 1; $i <= 10; $ i++){}
이 문은 1과 10 사이의 모든 숫자를 반복하는 데 사용할 수 있습니다for ($i = 1; $i <= 10; $i++){}
语句可以循环得出1~10 之间的所有数字
if($i % 2 != 0)
语句用于判断$i
的值能整除2,不能整除则()
中值为true,则执行continue;
语句。
在循环体中,使用if($i % 2 != 0)
语句进行判断,如果$i的值能整除2就使用“echo $i
”输出;如果$i的值不能整除2,则触发continue;
语句,跳出本次循环(不进行输出),执行下一次循环。
输出结果:
2 4 6 8 10
方法2:使用break语句
break语句用于跳出当前的语法结构,可以终止循环体的代码并立即跳出当前的循环,执行循环之后的代码。
break和continue的不同点是:continue语句只是结束本次循环,而 break 语句会终止整个循环的执行。
沿用上面的示例1中代码,将continue;
换成break;
,会输出什么?
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 != 0) { break; } echo $i.' <br>'; } ?>
答案是:什么也不输出。为什么会这样尼?我们来分析一下:
forx循环一开始,$i=1
,1小于10吗?当然,然后开始执行循环体中的if($i % 2 != 0)
语句;
那么1能整除2吗?显然是不能,因此()
中值为true,则执行if中的“break;”语句,直接跳出整个循环了,根本没有机会执行“echo $i.' <br>'
if($i % 2 != 0)
문은 다음과 같습니다. <를 결정하는 데 사용됨 code>$i의 값은 2로 균등하게 나눌 수 있습니다. 균등하게 나눌 수 없는 경우 ()
의 값은 true이고 continue;
문이 실행됩니다. 루프 본문에서 if($i % 2 != 0)
문을 사용하여 $i의 값을 2로 균등하게 나눌 수 있는지 판단합니다. "echo $ i
" 출력을 사용합니다. $i의 값을 2로 균등하게 나눌 수 없으면 continue;
문이 트리거되어 이 루프에서 빠져나옵니다(출력 없음). ), 다음 루프를 실행합니다.
출력 결과:
<?php for ($i = 1; $i <= 10; $i++) { if($i % 2 == 0) { goto a; } echo $i.' <br>'; } a: ?>
방법 2: break 문 사용
break 문은 현재 구문 구조에서 벗어나는 데 사용됩니다. 루프 본문을 종료하고 즉시 현재 루프에서 빠져나와 루프 뒤의 코드를 실행합니다.
break와 continue의 차이점은 continue 문은 현재 루프만 종료하는 반면, break 문은 전체 루프의 실행을 종료한다는 것입니다.
아무 것도 출력하지 마세요위 예제 1의 코드를 사용하고
continue;
를break;
로 바꾸세요.답은1로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
입니다. 왜 이런 일이 발생합니까? 분석해 보겠습니다. forx 루프의 시작 부분인 $i=1
에서 1은 10보다 작습니까? 물론, 루프 본문에서 if($i % 2 != 0)
문을 실행해 보세요. 그러면 1을 2로 나눌 수 있을까요? 당연히 그럴 수 없으므로 ()
의 값이 true이면 if의 "break;" 문이 실행되어 전체 루프에서 직접 빠져나와 " echo $i.' < ;br>'
" 문입니다.
방법 3: goto 문
goto의 기능은 프로그램 실행을 현재 위치에서 다른 위치로 점프하는 것입니다. 대상 위치는 대상 이름 뒤에 콜론이 오는 방식으로 표시할 수 있으며(예: name: ) 점프 명령은 goto 다음에 대상 위치 표시를 사용하는 것입니다.
예 2: 1~10 사이의 모든 홀수 출력(홀수는 2로 나눌 수 없음) <?php
header("Content-type:text/html;charset=utf-8");
for ($i = 1; $i <= 10; $i++) {
if($i % 2 == 0) {
die();
}
echo $i.' <br>';
}
?>
1
goto는 실제로 단지 연산자일 뿐이며 사용에는 특정 제한이 있습니다: 대상 위치 점프는 동일한 파일 및 범위에만 있을 수 있습니다.
goto 연산자는 PHP5.3 이상에서만 유효합니다.
방법 4: die()/exit() 문 🎜🎜🎜🎜exit와 die라는 두 이름은 동일한 함수를 가리킵니다. 🎜🎜die()/exit()의 역할: 프로그램 실행을 종료하고 어디서나 사용할 수 있습니다. 🎜🎜🎜위 예제 3의 코드에 따라 goto 문을 die()로 바꾸고 출력을 살펴보세요🎜🎜🎜<?php header("Content-type:text/html;charset=utf-8"); for ($i = 1; $i <= 10; $i++) { if($i % 2 == 0) { return; } echo $i.' <br>'; } ?>
1
1
return语句可以在一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是在主程序里调用。
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
推荐:《PHP面试题大汇总(收藏)》
위 내용은 PHP 루프 학습 5: 루프에서 벗어나는 방법은 무엇입니까? 5가지 방법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!