这是的问题
public function loop (){
while($this->controlFunction()){
//do stuff
}
}
public function controlFunction (){
$this->nestedFunction();
}
public function nestedFunction (){
if($condA){ //whatsoever the condition
break;
}
}
这可能吗?我不想返回,然后使用标志再次返回,看起来像意大利面条代码
谢谢你们的回答,伙计们,经过思考,我的问题似乎很愚蠢。。。无论如何,谢谢:)
根据文档:
break ends execution of the current for, foreach, while, do-while or switch structure
由于调用函数会更改作用域,break
语句将不会影响执行while
-循环的前一个作用域。
事实上,由于作用域与nestedFunction
方法中的作用域不同,调用break
将导致致命错误(E_ERROR
),因为该作用域不知道在上一个作用域中运行的while
循环。
Fatal error: Cannot break/continue 1 level
所以不,这是不可能的。
你试过了吗?无论如何,返回一个值是一种更好的方法,可以清楚地了解函数应该做什么。你应该始终尝试使函数独立,这是一种很好的做法。