关于array_map(),回调类型引用了什么?

时间:2013-01-10 21:01:13

标签: php functional-programming

多年来,我一直在试图用PHP这样的黑客攻击用于编写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上找不到任何关于此的文档。我是否错误地阅读了callback type documentation

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

我想从commented PHP docs强调以下内容:

  

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

这实际上是因为很长一段时间,所以要说PHP 5.3之前允许匿名函数“解决方法”。