我最近真的想在PHP中使用anonymous functions。很遗憾,我的主持人仍然在5.2
。我自动思考这会起作用:
uasort($array, function($a, $b) {
return $a > $b;
});
这是他们的工作方式吗?简单地作为参数而不是回调传入?文档没有具体说明他们是如何做的,但我对JavaScript的匿名函数有一定的了解,所以我认为他们会这样做。
答案 0 :(得分:1)
是。您可以使用它代替常规的PHP回调。
试试这个(在PHP 5.3中):
function wait($callback)
{
sleep(10);
call_user_func($callback);
}
wait(function(){
echo "Hello!";
});
call_user_func()
如何运作,它将接受以下任何一项:
'functionName'
array('className', 'methodName')
array($objectInstance, 'methodName');
现在在PHP 5.3中
function(){ // .. do something ..
}
我的猜测是内部PHP函数用户call_user_func()
用于回调,并且因为它支持匿名函数,所以它们的工作方式与其他回调一样。