我想立即评估一个匿名函数,而不是它在方法args中作为Closure对象出现。这可能吗?
例如:
$obj = MyClass;
$obj->Foo(function(){return "bar";}); // passes a Closure into Foo()
$obj->Foo(function(){return "bar";}()); // passes the string "bar" into Foo()?
第3行是非法语法 - 有没有办法做到这一点?
由于
答案 0 :(得分:2)
您可以使用call_user_func
执行此操作...虽然可能有点愚蠢但您可以将其分配给变量并随后调用变量。
call_user_func(function(){ echo "bar"; });
您可能认为PHP 5.4具有解除引用功能可以实现这一点。但是你错了(无论如何,RC6)。