Array_filter в контексте объекта с частным обратным вызовом - PullRequest
14 голосов
/ 23 ноября 2011

Я хочу отфильтровать массив, используя функцию array_filter. Он намекает на использование call_user_func под водой, но не упоминает ничего о том, как использовать в контексте класса / объекта.

Псевдокод, объясняющий мою цель:

class RelatedSearchBlock {
  //...
  private function get_filtered_docs() {
    return array_filter($this->get_docs(), 'filter_item');
  }

  private filter_item() {
    return ($doc->somevalue == 123)
  }
}

Нужно ли мне изменить 'filter_item' на array($this, 'filter_item')? Возможно ли вообще то, что я хочу?

1 Ответ

44 голосов
/ 23 ноября 2011

Да:

return array_filter($this->get_docs(), array($this, 'filter_item'));

См. Документацию для типа callback .

...