Возможно ли передать анонимную функцию в качестве аргумента и выполнить ее немедленно, передав функцию return
значение?
function myFunction(Array $data){
print_r($data);
}
myFunction(function(){
$data = array(
'fruit' => 'apple',
'vegetable' => 'broccoli',
'other' => 'canned soup');
return $data;
});
Это вызывает ошибку из-за подсказки типа Array
, жалуясь на передаваемый объект. Хорошо, если я удаляю подсказку типа, он, конечно, выплевывает Closure Object
, а не результаты, которые я хочу. Я понимаю, что я технически передаю экземпляр объекта от Closure
до myFunction
, однако я почти уверен, что видел это в другом месте. Это возможно? Если да, то что я делаю неправильно?
Для этого обсуждения я не могу изменить функцию, к которой я передаю закрытие.
tl; dr: Как передать анонимное объявление функции в качестве аргумента, в результате чего в качестве аргумента передается возвращаемое значение.
PS: Если не ясно, нужный результат:
Array
(
[fruit] => apple
[vegetable] => broccoli
[other] => canned soup
)