我正在使用PHP array_map
我只是想映射一个像这样的数组:
class myClass{
private function mapMyArray(){
$mapped = array_map(function ($d) { return $this->myFunction($d);}, $raw);
}
private function myFunction(){ .... }
}
它按预期工作,基于函数映射数组。
但是当我使用类似的功能
时class myClass{
private function mapMyArray(){
$mapped = map($this->myFunction, $raw);
}
private function myFunction(){ .... }
}
不起作用。
如何仅将函数引用传递给调用而不是内联函数。有可能吗?
为什么$mapped = map($raw, $this->myFunction);
不起作用?
答案 0 :(得分:2)
您需要以带引号的字符串形式传递函数,但是由于您在一个类中,因此必须以数组形式传递它。 (请参见documentation for callbacks,通常在评论中找到)
$mapped = map($raw, [$this, 'myFunction']);