日期:2014-05-17  浏览次数:20449 次

如何限制递归函数的次数?
<?php

function add($a){

    if ($a < 99) {

        $a = $a +2;

        echo $a.",";

        $a = add($a);

    }

    return $a;

}

add(15);

?>

这个函数会罗列出从$a开始到99的单数,但是我只想调出一个10个数字?那我要如何限制递归函数的次数?(这个只是我一个函数的简化的例子,所以请从「如何限制递归函数次数」的方向作解答。谢谢。

输出结果应该是「17,19,21,23,25,27,29,31,33,35」
------解决方案--------------------
既然有次数限制,那就要传递限制数了
function add($a, $n=false){ //默认不限制次数
  if($n !== false && $n == 0) {
    return;
  }else {
    $n--;
  }
  if ($a < 99) {
    $a = $a +2;
    echo $a.",";
    $a = add($a, $n);
  }
  return $a;
}

add(15, 10);
17,19,21,23,25,27,29,31,33,35,