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