PHP在一个函数中开始循环,在另一个函数结束循环


PHP Start loop in one function and end it in another?

我正在构建我的个人数据库连接模型,我需要做的一件事是允许用户使用一个函数开始循环,并在另一个函数中结束循环。这是代码:

运行功能的代码

PSMQuery::loopQueryStart("DATA");
  // Stuff that can be executed in the loop
PSMQuery::loopQueryStop();

类中的代码:

public function loopQueryStart($query) {
  while (CONDITION):
}
public function loopQueryEnd() {
  endwhile;
}

我想知道这种方法是否可行,是否还有其他方法,只是为了简化使用我的模型的人的代码外观。

正如我在评论中所说,我认为这不是一个好主意。是的,WordPress的循环浮现在我的脑海中,但它只是让我觉得肮脏。

我的建议是回叫/回叫。这样,您就不需要在不同的函数中开始和结束循环,只需在循环中传递一个函数即可调用。我已经准备好了这个工作示例。你的代码可能看起来像这个

PSMQuery::loopQuery("Data", function($data) {
    // return something
});
//***
public static function loopQuery($data, callable $callback) {
   while (loop) {
       // do something with $callback
   }
}

如果您想以更复杂的方式进行操作,引用可能会帮助您找到解决方案