0

多年来,我一直在努力尝试用 PHP 编写函数式代码,如下所示:

class Foo {
    function addOne($wu) {
        return $wu + 1;
    }
    function getBiggerThings(array $things) {
        $that = $this;
        return array_map(function ($i) use ($that) {
            return $that->addOne($i);
        }, $things); 
}

今天有同事指出我可以这样写:

return array_map(array($this, 'addOne'), $things);

我在 php.net 上找不到任何关于此的文档。我是否错误地阅读了回调类型文档

4

2 回答 2

4

这记录在有关 Callable 类型的文档中

于 2013-01-10T21:03:05.097 回答
4

我想从评论的 PHP 文档中强调以下内容:

实例化对象的方法作为数组传递,该数组包含索引 0 处的对象和索引 1 处的方法名称。

这实际上已经有很长一段时间了,可以说在 PHP 5.3 之前允许您使用匿名函数“解决方法”。

于 2013-01-10T21:03:28.713 回答