<?phpfunction 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」

解决方案 »

  1.   

    既然有次数限制,那就要传递限制数了
    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,
      

  2.   

    增加计数参数
    $a = 0;
    $b = fun($a);
    var_dump($b);function fun($n)
    {
    $n++;
    if ($n >= 10)
    {
    return $n;
    }
    else
    {
    return fun($n);
    }}