PHP: Passer la fonction anonyme en argument

Est-il possible de passer d'une fonction anonyme comme un argument, et exécuter immédiatement, passant ainsi de la fonction return valeur?

function myFunction(Array $data){
    print_r($data);
}

myFunction(function(){
    $data = array(
        'fruit'     => 'apple',
        'vegetable' => 'broccoli',
        'other'     => 'canned soup');
    return $data;
});

Cela déclenche une erreur due à la Array type de conseil, de se plaindre d'un objet en cours de transmission. Bon, si je supprimer le type d'indice, il crache Closure Objectplutôt que les résultats que je veux. Je comprends que je suis techniquement passage d'un objet instance de Closure à myFunctioncependant, je suis certain que j'ai vu ce que c'est possible d'ailleurs. Est-ce possible? Si oui, ce que je fais mal?

Pour les besoins de la présente discussion, je ne peux pas modifier la fonction pour laquelle je suis de passage à la fermeture.

tl;dr: Comment puis-je passer un anonyme déclaration de fonction en tant qu'argument, résultant dans la valeur de retour d'être passé comme argument.

PS: Si pas clair, la sortie désirée est:

Array
(
    [fruit] => apple
    [vegetable] => broccoli
    [other] => canned soup
)

source d'informationauteur Dan Lugg