php递归怎么理解,php递归理解

4c0b4536f7ce5988979dc29d8cd5e56e.png

递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,

若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白,

直接上例子<?php

function test($n)

{

echo $n."";

if($n>0)

{

test($n-1);

}

else

{

echo "";

}

echo $n."";

}

test(2);

这个例子最终的输出结果是2 1 00 1 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,执行test(0),echo 0,  此时0 > 0 的条件不满足,不在执行test()函数,

而是echo “”,并且执行后面的 echo 0

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

所以呢 最后输出的内容就是2 1 00 1 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值