首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP break while do从嵌套的foreach内部

PHP break while do从嵌套的foreach内部
EN

Stack Overflow用户
提问于 2018-09-26 20:21:57
回答 1查看 572关注 0票数 1

我有一个do while循环和一个嵌套的foreach循环。如果为$x > N(在本例中为N = 4),我将使用break 2来同时中断(do whileforeach)。现在,它的工作but...is这是一个很好的做法?或者我应该以其他方式中断while循环?

代码语言:javascript
复制
$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

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 21:14:26

在您的示例中,break 2将工作得很好,是的,它是PHP的一部分。然而,我总是担心循环的中断,特别是当这些循环是嵌套的时候。

考虑一下,如果您正在处理的代码比包含嵌套循环的代码复杂得多。当你指定两个循环的中断时,你需要非常小心的考虑到任何新代码中的中断。

因此,虽然使用break可能会起作用,但我总是试图避免中断,并总是考虑是否有不同的选项可以在不需要中断的情况下工作(特别是当你有嵌套循环的时候)。在您的示例中,我将使用以下代码:

代码语言:javascript
复制
$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);

这通常会导致代码更整洁,更容易维护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52517670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档