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

时间:2015-03-30 20:44:11

标签: php

继承问题

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

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

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

谢谢你们的回答,经过深思熟虑之后,我的问题似乎很愚蠢......不管怎样,谢谢你:)

2 个答案:

答案 0 :(得分:2)

根据the documentation

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

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

实际上,因为范围与nestedFunction方法不同,调用break将导致致命错误(E_ERROR),因为该范围不知道{while 1}} - 循环在前一个范围内运行。

Fatal error: Cannot break/continue 1 level

所以不,这是不可能的。

答案 1 :(得分:1)

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