将函数引用传递给PHP中的方法

时间:2019-03-14 17:55:35

标签: php

我正在使用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);不起作用?

1 个答案:

答案 0 :(得分:2)

您需要以带引号的字符串形式传递函数,但是由于您在一个类中,因此必须以数组形式传递它。 (请参见documentation for callbacks,通常在评论中找到)

 $mapped = map($raw, [$this, 'myFunction']);