为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法打破其他方法的循环?

有没有办法打破其他方法的循环?

PHP
ABOUTYOU 2021-05-04 21:38:27
我试图用嵌套的if代码重构某些嵌套循环,然后隔离其中一个嵌套的if并创建了自己的方法。重构这种类型的代码的任何技巧都非常值得赞赏。注意:这些仅是示例,原始代码具有很多嵌套循环和if嵌套。先前的代码:function bar(){    $is_baz = 'BAZ';    $is_bas = 'BAS';    while (TRUE) {        echo 'Im';        if ($is_baz == 'BAZ') {            if ($is_bas == 'BAS') {                echo 'here';                break;            } else {                echo 'not here';            }        }        echo '!!!';        break;    }    echo 'too';}重构代码:function foo($is_bas){    if ($is_bas == 'BAS') {        echo 'here';        break;    } else {        echo 'not here';    }}function bar(){    $is_baz = 'BAZ';    $is_bas = 'BAS';    while (TRUE) {        echo 'Im';        if ($is_baz == 'BAZ') {            foo($is_bas);        }        echo '!!!';        break;    }    echo 'too';}预期结果:Imheretoo
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您不能直接从函数内部中断外循环,但可以返回一个值来告知外循环中断:


function foo($is_bas)

{

    if ($is_bas == 'BAS') {

        echo 'here';

        return true;

    }

    return false;

}


function bar()

{

    $is_baz = 'BAZ';

    $is_bas = 'BAS';


    while (TRUE) {

        echo 'Im';


        if ($is_baz == 'BAZ') {

            if (foo($is_bas)) break;

        }


        echo '!!!';

        break;

    }


    echo 'too';

}


bar();

输出:


Imheretoo


查看完整回答
反对 回复 2021-05-21
?
函数式编程

TA贡献1807条经验 获得超9个赞

function foo($is_bas)

{

    if ($is_bas == 'BAS') {

        echo 'here';

        return true;

    }

    echo 'not here';

    return false;

}


function bar()

{

    $is_baz = 'BAZ';

    $is_bas = 'BAS';


    while (TRUE) {

        echo 'Im';


        if ($is_baz == 'BAZ' && foo($is_bas)) {

            break;

        }


        echo '!!!';

        break;

    }


    echo 'too';

}


bar();


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号