PHP在一个函数中启动循环并在另一个函数中结束它?

时间:2016-04-09 00:04:47

标签: php

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

运行功能的代码

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

班上的代码:

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

public function loopQueryEnd() {
  endwhile;
}

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

1 个答案:

答案 0 :(得分:2)

正如我在评论中所述,我认为这不是一个好主意。是的,WordPress的循环浮现在脑海中,但它对我来说感觉很脏。

我的建议是Callbacks / Callables。这样你就不需要在不同的函数中启动和结束循环,只需传递一个函数来调用循环内部。我准备了this working example。您的代码可能如下所示

PSMQuery::loopQuery("Data", function($data) {
    // return something
});

//***

public static function loopQuery($data, callable $callback) {
   while (loop) {
       // do something with $callback
   }
}

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