PHP7中的递归IIFE(立即调用函数)

PHP7中的递归IIFE(立即调用函数),php,Php,在PHP7中是否可以将递归与立即调用的函数一起使用? 例如,如果我想编写斐波那契级数的递归版本 下面的例子不起作用,但我希望它能帮助你们理解我的想法 echo (function fn($x) { if($x==1||$x==0?0){ return $x; }else{ return fn($x-1) + fn($x+1); } })(4); 是的,您可以在php 7中使用iife,如下所示: (function() { echo

在PHP7中是否可以将递归与立即调用的函数一起使用?
例如,如果我想编写斐波那契级数的递归版本

下面的例子不起作用,但我希望它能帮助你们理解我的想法

echo (function fn($x) {
     if($x==1||$x==0?0){
        return $x;
     }else{
        return fn($x-1) + fn($x+1);
     }
})(4);

是的,您可以在php 7中使用iife,如下所示:

(function() { echo "yes, this works in PHP 7.\n"; })();

$arr=array();
($recursive=函数(&$argument)
{
全球$递归;
if(计数($argument)<10)
{
$argument[]=“foo”;
$recursive($argument);
}
})($arr);
印刷费($arr);

你不能只使用一个常规函数吗?在php中,闭包应该是
$fn()
,要在定义之前抓住它,你不能
)使用($fn)
,因此需要使用
全局
,尽管它最终看起来像一个减缩器,所以最好使用或使用一个普通的递归函数
$arr = array();
($recursive = function (&$argument)
{
    global $recursive;

    if (count($argument) < 10)
    {
        $argument[] = 'foo';
        $recursive($argument);
    }
})($arr);
print_r($arr);