首页 > 解决方案 > 如何使用对象方法(使用 $this)作为 array_filter 中的回调?

问题描述

我为类定义了一个公共方法A

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

我想A使用类中定义的方法过滤一个对象数组A

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

但是,实际上$this在 class 中是无效的B。我应该如何在中输入回调函数array_filter以使其工作?

标签: phparray-filter

解决方案


使用匿名函数调用isValid()

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

推荐阅读