我最近真的很想给我们介绍 PHP 中的匿名函数。不幸的是,我的主机还在5.2
。我自动认为这会起作用:
uasort($array, function($a, $b) {
return $a > $b;
});
这是他们的工作方式吗?只是作为参数而不是回调传入?文档没有具体说明他们是如何做的,但我对 JavaScript 的匿名函数有一定的了解,所以我认为他们会这样做。
我最近真的很想给我们介绍 PHP 中的匿名函数。不幸的是,我的主机还在5.2
。我自动认为这会起作用:
uasort($array, function($a, $b) {
return $a > $b;
});
这是他们的工作方式吗?只是作为参数而不是回调传入?文档没有具体说明他们是如何做的,但我对 JavaScript 的匿名函数有一定的了解,所以我认为他们会这样做。
是的。您可以使用它来代替常规的 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()
用于回调,并且因为它支持匿名函数,它们将与其他回调一样工作。