Как использовать метод объекта (с $ this) в качестве обратного вызова в array_filter? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть открытый метод, определенный для класса A:

class A{
  public function isValid()
  {
    return $this->getValue==1;
  }
}

Я хочу отфильтровать массив объектов A s, используя метод, определенный в классе A:

class B{
  //$input is an array of A objects
  public static function getArray($input)
  {
    return array_filter($input, array($this, “isValid”))
  }
}

Однако на самом деле $this недопустимо в классе B. Как мне ввести функцию обратного вызова в array_filter, чтобы она работала?

1 Ответ

0 голосов
/ 07 ноября 2019

Используйте анонимную функцию, которая вызывает isValid()

return array_filter($input, function($x) { return $x->isValid(); });
...