我有一个do while
循环和一个嵌套的foreach
循环。如果为$x > N
(在本例中为N = 4
),我将使用break 2
来同时中断(do while
和foreach
)。现在,它的工作but...is这是一个很好的做法?或者我应该以其他方式中断while循环?
$arr = ['a', 'b', 'c'];
$x = 0;
do{
//do something here...
//and something here...
foreach($arr as $k => $v){
if($x > 4){
break 2;
} else{
echo '(' . $x . ')' . $k . ' - ' . $v . '<br />';
}
}
$x++;
} while($x < 10);
谢谢!:D
发布于 2018-09-26 21:14:26
在您的示例中,break 2将工作得很好,是的,它是PHP的一部分。然而,我总是担心循环的中断,特别是当这些循环是嵌套的时候。
考虑一下,如果您正在处理的代码比包含嵌套循环的代码复杂得多。当你指定两个循环的中断时,你需要非常小心的考虑到任何新代码中的中断。
因此,虽然使用break可能会起作用,但我总是试图避免中断,并总是考虑是否有不同的选项可以在不需要中断的情况下工作(特别是当你有嵌套循环的时候)。在您的示例中,我将使用以下代码:
$arr = ['a', 'b', 'c'];
$x = 0;
do{
//do something here...
//and something here...
foreach($arr as $k => $v){
echo '(' . $x . ')' . $k . ' - ' . $v . '<br />';
}
$x++;
} while($x <= 4);
这通常会导致代码更整洁,更容易维护。
https://stackoverflow.com/questions/52517670
复制相似问题