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

时间:2020-08-29 16:48:10

标签: php

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

以下例举是行不通的,但我希望它能帮助您理解我的想法。

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

1 个答案:

答案 0 :(得分:0)

是的,您可以像这样在php 7中使用iife:

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

$arr = array();
($recursive = function (&$argument)
{
    global $recursive;

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