如何在PHP5.3中使用匿名函数

时间:2010-02-12 03:36:31

标签: php anonymous-function

我最近真的想在PHP中使用anonymous functions。很遗憾,我的主持人仍然在5.2。我自动思考这会起作用:

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

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

1 个答案:

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