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
)