if와 foreach에서 벗어나 다
foreach 루프와 if 문이 있습니다. 일치하는 것이 발견되면 궁극적으로 foreach에서 벗어날 필요가 있습니다.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
<break out of if and foreach here>
}
}
if
루프 구조가 아니므로 "분리 할 수 없습니다".
그러나 foreach
간단히 전화를 걸어서 벗어날 수 있습니다 break
. 귀하의 예에서 원하는 효과가 있습니다.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
// will leave the foreach loop and also the if statement
break;
}
this_command_is_not_executed_after_a_match_is_found();
}
답을 찾고있는이 질문에 걸려 넘어지는 다른 사람들을위한 완전성 ..
break
선택적인 인수를 취하는데, 얼마나 많은 루프 구조를 끊어야 하는지 정의 합니다 . 예:
foreach (array('1','2','3') as $a) {
echo "$a ";
foreach (array('3','2','1') as $b) {
echo "$b ";
if ($a == $b) {
break 2; // this will break both foreach loops
}
}
echo ". "; // never reached
}
echo "!";
결과 출력 :
1 3 2 1!
어떤 모호한 이유로 인해 루프 외부 구조가 아니므로 정의에 따라 깨지지 않는 명령문 에서 break
벗어나기 를 원한다면 작은 루프 구조로 if
감싸서 if
해당 코드 블록을 뛰어 넘을 수 있습니다.
이것은 전체적인 해킹이므로 일반적으로 이렇게하고 싶지 않습니다.
do if ($foo)
{
// Do something first...
// Shall we continue with this block, or exit now?
if ($abort === true) break;
// Continue doing something...
} while (false);
위의 예제 는 PHP 문서 의 주석에서 가져온 것입니다.
구문에 대해 궁금한 경우 : 여기에서는 약어 구문이 사용되므로 작동합니다. 루프 구조에는 단일 명령문 만 포함되므로 외부 중괄호는 생략 할 수 있습니다 if ($foo) { .. }
.
do $i++; while ($i < 100)
이에 대한 또 다른 예 는 do { $i++; } while ($i < 100)
입니다.
foreach($equipxml as $equip) {
$current_device = $equip->xpath("name");
if ( $current_device[0] == $device ) {
// found a match in the file
$nodeid = $equip->id;
break;
}
}
간단하게 사용하십시오 break
. 그렇게 할 것입니다.
PHP에서 foreach
or while
루프를 깨는 데 더 안전한 방법 은 증가하는 카운터 변수와 if
조건을 원래 루프 안에 중첩시키는 것 입니다. 이렇게하면 break;
복잡한 페이지에서 다른 곳을 혼란스럽게 할 수있는 것보다 더 엄격하게 제어 할 수 있습니다.
예:
// Setup a counter
$ImageCounter = 0;
// Increment through repeater fields
while ( condition ):
$ImageCounter++;
// Only print the first while instance
if ($ImageCounter == 1) {
echo 'It worked just once';
}
// Close while statement
endwhile;
여기에 착륙하지만 include 문을 포함하는 루프에서 벗어나는 방법을 검색하는 경우 break 또는 continue 대신 return을 사용하십시오.
<?php
for ($i=0; $i < 100; $i++) {
if (i%2 == 0) {
include(do_this_for_even.php);
}
else {
include(do_this_for_odd.php);
}
}
?>
do_this_for_even.php 안에있을 때 깨고 싶다면 return을 사용해야합니다. break 또는 continue를 사용하면이 오류가 반환됩니다. 1 단계를 중단 / 계속할 수 없습니다. 여기 에서 자세한 내용을 찾았 습니다
참고 URL : https://stackoverflow.com/questions/9215588/break-out-of-if-and-foreach
'Programing' 카테고리의 다른 글
PowerShell 2.0으로 전체 디렉토리를 재귀 적으로 삭제하는 방법은 무엇입니까? (0) | 2020.03.30 |
---|---|
jquery를 사용하여 iFrame 상위 페이지에 액세스하는 방법은 무엇입니까? (0) | 2020.03.30 |
SSH 비밀번호를 확인 / 확인 / 테스트 / 확인하는 방법은 무엇입니까? (0) | 2020.03.30 |
jQuery는 먼저 제외하고 모두 선택 (0) | 2020.03.30 |
개인 및 보호 회원 : C ++ (0) | 2020.03.30 |