簡體   English   中英

如何從嵌套函數中斷循環?

[英]how to break loop from nested function?

這是問題所在

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 -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-2024 STACKOOM.COM