0

我最近真的很想给我们介绍 PHP 中的匿名函数。不幸的是,我的主机还在5.2。我自动认为这会起作用:

uasort($array, function($a, $b) {
    return $a > $b;
});

这是他们的工作方式吗?只是作为参数而不是回调传入?文档没有具体说明他们是如何做的,但我对 JavaScript 的匿名函数有一定的了解,所以我认为他们会这样做。

4

1 回答 1

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()用于回调,并且因为它支持匿名函数,它们将与其他回调一样工作。

于 2010-02-12T03:37:47.110 回答