3

如果要执行以下操作:

    $filteredValues = array_filter($rawValues, function($rawValue) {
        return $this->validateValue($rawValue);
    });

validateValue是同一类中的私有方法。

我如何以这种方式在 array_filter 中使用 $this 上下文?

4

1 回答 1

4

如果你使用 PHP 5.3,PHP 不识别$this为闭包,你需要做一个类似 JavaScript 的技巧:

$self = $this;
$filteredValues = array_filter($rawValues, function($rawValue) use ($self) {
    return $self->validateValue($rawValue);
});

请注意,上述内容只会让您通过对象的公共 API 访问该对象。这与 5.4 对 Closure 重新绑定的支持不同,后者允许完全访问$this.

于 2013-11-03T16:02:13.790 回答