Передача метода объекта array_map ()

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; 

Может ли кто-нибудь сказать, что я могу написать в WHAT_TO_WRITE_HERE, так что функция doSomeWork получает проход как первый параметр для array_map. и код работает правильно.

И выдать

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

Чтобы использовать объектные методы с array_map() , передайте массив, содержащий экземпляр объекта и имя метода. Для области с одинаковым объектом используйте $this как обычно. Поскольку имя вашего метода определено в вашем public $func свойстве public $func , вы можете передать $this->func . Это относится к большинству функций, которые принимают обратный вызов в качестве аргумента.

Как побочная заметка, скобки вне array_map() не нужны.

 return array_map(array($this, $this->func), range($min, $max)); 

Следующий код предоставляет массив писем из массива $users который содержит экземпляры класса с методом getEmail :

  if(count($users) < 1) { return $users; // empty array } return array_map(array($users[0], "getEmail"), $users);