可能重复:
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