可能重複:
Immediately executing anonymous functions我可以立即評估一個匿名函數嗎?
我想立刻評估,而不是它出現在方法ARGS一個關閉對象的匿名函數。這可能嗎?
例如:
$obj = MyClass;
$obj->Foo(function(){return "bar";}); // passes a Closure into Foo()
$obj->Foo(function(){return "bar";}()); // passes the string "bar" into Foo()?
第三行是非法的語法 - 有沒有辦法做到這一點?
感謝
很難想象爲什麼你需要這樣做?爲什麼不把函數的結果賦值給一個變量,然後傳遞該變量呢? – 2012-01-31 20:48:13
同樣在這些例子中,你的函數幾乎只是一個匿名函數,沒有閉包的特性,它不是從當前上下文中'記住'任何變量 – 2012-01-31 20:49:56
我意識到,我真的不想解釋爲什麼我需要要做到這一點 - 顯然這是一種不尋常的情況。 – Tom 2012-01-31 20:54:26