方法可以用作array_map函数吗?

2022-08-30 08:14:30

我想做这样的事情:

class Cls {
  function fun($php) {
    return 'The rain in Spain.';
  }
}

$ar = array(1,2,3);
$instance = new Cls();
print_r(array_map('$instance->fun', $ar));
               // ^ this won't work

但是array_map的第一个参数应该是函数的名称。我想避免围绕$instance>fun编写包装器函数,但这似乎是不可能的。这是真的吗?


答案 1

是的,您可以对方法进行回调,如下所示:

array_map(array($instance, 'fun'), $ar)

有关详细信息,请参阅 PHP 手册中的回调类型


答案 2

您还可以使用

array_map('Class::method', $array) 

语法。


推荐