¿Es posible pasar una función anónima como argumento y hacer que se ejecute inmediatamente, pasando el valor de la función return
?PHP: Pase la función anónima como argumento
function myFunction(Array $data){
print_r($data);
}
myFunction(function(){
$data = array(
'fruit' => 'apple',
'vegetable' => 'broccoli',
'other' => 'canned soup');
return $data;
});
Esto arroja un error debido a la Array
tipo-pista, quejándose de un objeto que se pasa. De acuerdo, si elimino la sugerencia de tipo, por supuesto escupe Closure Object
, en lugar de los resultados que quiero. Entiendo que técnicamente estoy pasando una instancia de objeto de Closure
a myFunction
, sin embargo, estoy seguro de que he visto esto logrado en otro lugar. es posible? Si es así, ¿qué estoy haciendo mal?
Por el bien de esta discusión, no puedo modificar la función a la que estoy pasando el cierre.
tl; dr: ¿Cómo puedo pasar una declaración de función anónima como argumento, dando como resultado el valor de retorno pasado como argumento?
PD: Si no está claro, la salida deseada es:
Array
(
[fruit] => apple
[vegetable] => broccoli
[other] => canned soup
)
usted probablemente ha visto esto en Javascript como '(function() {})()', pero las funciones de PHP no son tan flexibles. – deceze