繁体   English   中英

如何从嵌套函数中断循环?

how to break loop from nested function?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

这是问题所在

public function loop (){
    while($this->controlFunction()){
        //do stuff
    }
}
public function controlFunction (){
     $this->nestedFunction();
}

public function nestedFunction (){
   if($condA){ //whatsoever the condition
       break;
   } 
}

那可能吗 ? 我不想再回来然后用旗子再回来,看起来像意大利面条代码

谢谢你们的回答,经过思考,我的问题看起来很愚蠢......不管怎样,谢谢:)

2 个回复

根据文件

break ends execution of the current for, foreach, while, do-while or switch structure

当调用函数更改范围时, break语句将对执行while -loop的先前作用域没有影响。

实际上,因为范围与nestedFunction方法不同,所以调用break会导致致命错误( E_ERROR ),因为该范围不知道在前一个范围中运行的while -loop。

Fatal error: Cannot break/continue 1 level

所以不,这是不可能的。

你试过了吗? 无论如何,返回值是一种更好的方法,可以清楚地说明函数应该做什么。 你应该总是尝试使功能独立,这是很好的做法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题
 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM