array_filter с функцией обратного вызова - PullRequest
0 голосов
/ 03 сентября 2011
$thisQuestion = array_filter($pollQuestions,function($q) use ($questDataArr){
                      return $questDataArr[0] == $q["id"];
                    });

Поскольку я использую 2 переменные, я использовал эту встроенную функцию. Как я могу создать функцию обратного вызова и передать дополнительный параметр?

1 Ответ

2 голосов
/ 03 сентября 2011

Если я правильно понимаю ваш вопрос:

  • вы не хотите использовать анонимную функцию
  • вам нужна функция, которая поддерживает некоторое состояние с ней

Решение - создать класс:

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'));
...