utf8_encode - php array_map with keys
Pasando el método de objeto a array_map() (2)
El siguiente código proporciona una serie de correos electrónicos de una matriz $users
que contiene instancias de una clase con un método getEmail
:
if(count($users) < 1) {
return $users; // empty array
}
return array_map(array($users[0], "getEmail"), $users);
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;
¿Puede alguien decir lo que puedo escribir en WHAT_TO_WRITE_HERE, para que la función doSomeWork se pase como primer parámetro a array_map? y el código funciona correctamente.
Y dar a conocer como
Array
(
[0] => 3
[1] => 4
[2] => 5
[3] => 6
[4] => 7
)
Para utilizar métodos de objeto con array_map()
, pase una matriz que contenga la instancia del objeto y el nombre del método. Para el alcance del mismo objeto, use $this
como normal. Ya que el nombre de su método está definido en su propiedad public $func
, puede pasar $this->func
. Esto se aplica a la mayoría de las funciones que aceptan una callback como un argumento.
Como nota al margen, los paréntesis fuera de array_map()
no son necesarios.
return array_map(array($this, $this->func), range($min, $max));