Можно ли передать анонимную функцию в качестве аргумента и заставить ее выполняться немедленно, таким образом передавая значение функции 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
)