可以将方法用作 array_map 函数吗

2021-12-23 00:00:00 methods php array-map

我想做这样的事情:

<前>类 Cls {函数乐趣($php){return '西班牙的雨.';}}$ar = 数组(1,2,3);$instance = new Cls();print_r(array_map('$instance->fun', $ar));//^ 这行不通

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

解决方案

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

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

查看 PHP 手册中的回调类型了解更多信息

I want to do something like this:

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

but the first argument to array_map is supposed to be the name of the function. I want to avoid writing a wrapper function around $instance->fun, but it doesn't seem like that's possible. Is that true?

解决方案

Yes, you can have callbacks to methods, like this:

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

see the callback type in PHP's manual for more info

相关文章