Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用递归替换循环_Php_Optimization_Loops_Recursion - Fatal编程技术网

Php 用递归替换循环

Php 用递归替换循环,php,optimization,loops,recursion,Php,Optimization,Loops,Recursion,我想问,如何用递归的方法为php函数fibonacci编写php代码。没有“for”循环。我有这样的代码,没有“for”怎么样? 谢谢各位 <?php function fibo($n){ if($n==0) return 0; elseif($n==1) return 1; else $tambah=fibo($n-1)+fibo($n-2); return $tambah; } for($n=0;$n<15;$n++){ echo

我想问,如何用递归的方法为php函数fibonacci编写php代码。没有“for”循环。我有这样的代码,没有“for”怎么样? 谢谢各位

<?php function fibo($n){
if($n==0)
    return 0;
elseif($n==1)
    return 1;
else
    $tambah=fibo($n-1)+fibo($n-2);
    return $tambah;
    }

for($n=0;$n<15;$n++){
    echo fibo($n)."<br/>";}
函数重复($func,$times){

如果($times A while loop?不清楚你在问什么。你已经有了一个递归定义。另外,如果你对优化代码感兴趣,那么PHP中的递归可能是个坏主意。我读这个问题的方式是,他想知道如何使用递归替换循环。请记住,在某些编程语言中,你别无选择ut使用递归进行循环,因为没有循环构造之类的东西。可能是因为我发布了未经测试但不起作用的代码:)它现在起作用了。@kellax是的,但这个解决方案非常通用。是的,很好的解决方案@rambocoder。感谢您添加了+1来平衡好的anwser。
function repeat($func, $times) {
    if ($times <= 0) {
        return;
    }
    $func($times);
    repeat($func, $times - 1);
}

$f = function($n) {
    echo fibo($n)."<br/>";
};

repeat($f, 15);