PHP7中的递归IIFE(立即调用函数)
在PHP7中是否可以将递归与立即调用的函数一起使用?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
例如,如果我想编写斐波那契级数的递归版本 下面的例子不起作用,但我希望它能帮助你们理解我的想法
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);