多年来,我一直在试图用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?
答案 0 :(得分:4)
答案 1 :(得分:4)
我想从commented PHP docs强调以下内容:
实例化对象的方法作为数组传递,该数组包含索引为0的对象和索引为1的方法名称。
这实际上是因为很长一段时间,所以要说PHP 5.3之前允许匿名函数“解决方法”。