PHP递归函数

      递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。

function test($no){

echo $no;

if($no > 0){

test($no-1);

}else{

echo '<--->';

}

echo $no;

}

test(2);

第一步,执行test(2),echo 2,然后因为2>0,执行test(1),(注意:后面还有没来得及执行的echo 2)

第二步,执行test(1),echo 1,然后因为1>0,执行test(0),(注意:同样后面还有没来得及执行的 echo 1)

第三步,执行test(0),echo 0,此时0>0的条件不满足,不在执行test()函数,而是echo “<-->”,并且执行后面的 echo0

此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行,也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo,0的一层是1也就是输出11的上一层是2 也就是输出22没有山一层所以呢输出的内容就是2 1 0<-->0 1 2

你可能感兴趣的:(PHP递归函数)