是否可以將匿名函數作爲參數傳遞並立即執行,從而傳遞函數的return
值?PHP:傳遞匿名函數作爲參數
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
)
你可能已經看到了這一點在JavaScript作爲'(函數(){})()',但PHP的功能沒有那麼靈活。 – deceze 2010-11-16 21:50:25