Php 将对象方法传递给数组_map()

Php 将对象方法传递给数组_map(),php,arrays,Php,Arrays,有人能告诉我在这里写什么吗,这样doSomeWork函数就可以作为数组映射的第一个参数获得pass。代码正常工作 并发出 class theClass{ function doSomeWork($var){ return ($var + 2); } public $func = "doSomeWork"; function theFunc($min, $max){

有人能告诉我在这里写什么吗,这样doSomeWork函数就可以作为数组映射的第一个参数获得pass。代码正常工作

并发出

    class theClass{
         function doSomeWork($var){
            return ($var + 2);
         }

         public $func = "doSomeWork";

         function theFunc($min, $max){
            return (array_map(WHAT_TO_WRITE_HERE, range($min, $max)));
         }
    }

$theClass = new theClass;
print_r(call_user_func_array(array($theClass, "theFunc"), array(1, 5)));
exit;

要将对象方法与
array\u map()
一起使用,请传递一个包含对象实例和方法名称的数组。对于相同的对象范围,请像正常情况一样使用
$this
。由于方法名称是在
public$func
属性中定义的,因此可以传递
$this->func
。这适用于大多数接受a作为参数的函数

作为旁注,
array\u map()
之外的括号是不必要的

Array
(
    [0] => 3
    [1] => 4
    [2] => 5
    [3] => 6
    [4] => 7
)

以下代码提供了来自
$users
数组的电子邮件数组,该数组包含具有
getEmail
方法的类的实例:

return array_map(array($this, $this->func), range($min, $max));
if(计数($users)<1){
返回$users;//空数组
}
返回数组映射(数组($users[0],“getEmail”),$users);

如果你只是在那里写函数名,它应该可以工作,“doSomeWork”
array($this,$this->func)
可以工作,当传递一个对象时,你需要传入一个数组,其中第一个参数是对象,第二个是该对象中的方法
数组([object[],function])
刚刚出现了这个问题,但这不起作用。我要做的就是在没有这笔钱的情况下通过它。i、 e.数组映射(数组($this,'func')。不确定为什么第一种方法不起作用。在此处找到它:
    if(count($users) < 1) {
        return $users; // empty array
    }
    return array_map(array($users[0], "getEmail"), $users);