array_filter 带有回调函数

发布于 2024-12-02 21:10:09 字数 239 浏览 0 评论 0原文

$thisQuestion = array_filter($pollQuestions,function($q) use ($questDataArr){
                      return $questDataArr[0] == $q["id"];
                    });

由于我在这里使用了 2 个变量,因此我使用了这个内联函数。如何创建回调函数并传递额外参数?

$thisQuestion = array_filter($pollQuestions,function($q) use ($questDataArr){
                      return $questDataArr[0] == $q["id"];
                    });

As I am using 2 variables here I was using this inline function . How can i create a callback function and pass extra parameter ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你列表最软的妹 2024-12-09 21:10:09

如果我正确理解你的问题:

  • 你不想使用匿名函数
  • ,你需要一个保持某种状态的函数

解决方案是创建一个类:

class MyCallback {
    private $questDataArr;
    public function __construct($questDataArr) {
        $this->questDataArr = $questDataArr;
    }
    function callback($q) {
        return $this->questDataArr[0] == $q["id"];
    }
}

array_filter($pollQuestions, array(new MyCallback($questDataArr), 'callback'));

If I understand your question correctly:

  • you don't want to use an anonymous function
  • you need a function that keeps some state with it

The solution is to create a class:

class MyCallback {
    private $questDataArr;
    public function __construct($questDataArr) {
        $this->questDataArr = $questDataArr;
    }
    function callback($q) {
        return $this->questDataArr[0] == $q["id"];
    }
}

array_filter($pollQuestions, array(new MyCallback($questDataArr), 'callback'));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文