请问递归的过程是怎样的呢?下面的代码有点不理解?<?php
function test($n){
echo $n."&nbsp;&nbsp;";
if($n>0){
test($n-1);
}else {
echo "<-->";
}
echo $n."&nbsp;&nbsp;";
}
test(10);
?>为什么输出的结果为:
10  9  8  7  6  5  4  3  2  1  0  <-->0  1  2  3  4  5  6  7  8  9  10  
前面的输出还能理解,但是为什么<-->后面还会输出0到10呢,不是输出0就完了吗?

解决方案 »

  1.   


    function test($n){
            echo $n."&nbsp;&nbsp;";
            if($n>0){//也就是说这个循环中只要$n>0就执行这个if,而if每次-1,也就是执行10次test函数,当第11次的时候执行的是else(因为不符合if的条件了),而else中被没有执行test函数的代码,所以这个函数执行10次就停了
                test($n-1);
            }else {
                echo "<-->";
            }
            echo $n."&nbsp;&nbsp;";
        }
        test(10);
      

  2.   

    应该是执行11次,第十一次才执行else的
      

  3.   

    function test($n){
      echo $n."&nbsp;&nbsp;";//这里输出10 9 8 7 ...
      if($n>0){
        test($n-1);
      }else {
        echo "<-->";
      }
      echo $n."&nbsp;&nbsp;";//这里输出0 1 2 3 ...
    }test(10);
      

  4.   

    function test($n){
     // echo $n."&nbsp;&nbsp;";
      if($n>0){
      test($n-1);
      }
     echo $n."&nbsp;&nbsp;";
    }test(2);$n=1 的時候 是滿足條件 結果 0    $n=0 的時候 是不滿足條件 結果 1以此類推
      

  5.   

    我明白了,其实我是不懂在<-->后面的东西,其实是这样:递归除了要一层一层往里面推进,当某个条件不满足的时候还要一层一层向外退出