如果想要执行以下操作:
$filteredValues = array_filter($rawValues, function($rawValue) {
return $this->validateValue($rawValue);
});
validateValue
是同一类中的私有方法。
如何以这种方式在array_filter中使用$ this上下文?
答案 0 :(得分:2)
如果您使用PHP 5.3,PHP无法将$this
识别为闭包,您需要像JavaScript那样做一些技巧:
$self = $this;
$filteredValues = array_filter($rawValues, function($rawValue) use ($self) {
return $self->validateValue($rawValue);
});
请注意,上述内容只允许您通过对象的公共API访问该对象。这不同于对Closure重新绑定的5.4支持,它允许完全访问$this
。