PHP에서 루프를 '종료'할 수 있습니까?
PHP 코드에서 오류 검사를 수행하는 루프가 있습니다. 원래는 이렇게 생겼습니다 ...
foreach($results as $result) {
if (!$condition) {
$halt = true;
ErrorHandler::addErrorToStack('Unexpected result.');
}
doSomething();
}
if (!$halt) {
// do what I want cos I know there was no error
}
이것은 모두 잘 작동하지만, 한 번의 오류가 없어도 여전히 반복됩니다. 루프를 벗어날 수있는 방법이 있습니까?
break statement를 찾고 있습니다.
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}
다른 게시물에서 언급했듯이 break 키워드를 사용할 수 있습니다. 힌트를 얻었지만 설명하지 않은 한 가지는 키워드가 숫자 값을 사용하여 PHP에게 몇 개의 레벨을 깨뜨릴 수 있는지 알려줍니다.
예를 들어, 정보 조각을 찾으려고 서로 중첩 된 세 개의 foreach 루프가있는 경우 '중단 3'을 수행하여 세 개의 중첩 루프를 모두 제거 할 수 있습니다. 이것은 'for', 'foreach', 'while', 'do-while'또는 'switch'구조에서 작동합니다.
$person = "Rasmus Lerdorf";
$found = false;
foreach($organization as $oKey=>$department)
{
foreach($department as $dKey=>$group)
{
foreach($group as $gKey=>$employee)
{
if ($employee['fullname'] == $person)
{
$found = true;
break 3;
}
} // group
} // department
} // organization
break;
루프를 떠납니다.
continue;
조건이 여전히 참이면 루프의 나머지 루프에 대한 코드를 건너 뛰고 다음 루프로 진행합니다.
break 키워드를 사용할 수 있습니다 .
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
foreach ($arr as $val) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}
이 모든 것이 좋은 답변이지만 더 나은 코드 표준이라고 생각합니다. 루프 조건에서 반복을 계속할지 여부를 나타내는 플래그를 사용하여 break
모두 사용하지 않도록 선택할 수 있습니다 .
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
$length = count($arr);
$found = false;
for ($i = 0; $i < $length && !$found; $i++) {
$val = $arr[$i];
if ($val == 'stop') {
$found = true; // this will cause the code to
// stop looping the next time
// the condition is checked
}
echo "$val<br />\n";
}
나는 이것이 break
사용되는 범위에 의존하지 않기 때문에 더 나은 코드 연습이라고 생각합니다 . 오히려 특정 루프를 중단할지 여부를 나타내는 변수를 정의합니다. 중첩되거나 순차적이지 않을 수있는 루프가 많은 경우에 유용합니다.
CSS로 솔루션을 시도했지만 그중 아무것도 나를 위해 일하지 않았습니다.
Replacing href="#"
to href="javascript:void(0);"
has worked as in this case modal doesn't jump to top and stays at the event element position.
참고URL : https://stackoverflow.com/questions/588892/can-you-exit-a-loop-in-php
'Programming' 카테고리의 다른 글
요세미티와 발 그린 (0) | 2020.07.29 |
---|---|
CSS에서 확인란의 테두리 스타일을 변경하는 방법은 무엇입니까? (0) | 2020.07.29 |
Arel and Rails에서 LIKE 쿼리를 수행하는 방법은 무엇입니까? (0) | 2020.07.29 |
GUID가 항상 고유하다고 가정해도 안전합니까? (0) | 2020.07.29 |
이미 사용중인 주소-bind (2) (Errno :: EADDRINUSE) (0) | 2020.07.29 |