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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很多同学在学习递归函数的时候会感到头晕,无法搞清楚递归函数的原理和运行机制,本文将给大家详细讲解递归函数的运行机制...
    Gundy_阅读 1,112评论 2 5
  • 递归函数 所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己。通常在此类型的函数之中会附加一个条件...
    曹渊说创业阅读 601评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,781评论 0 11
  • 沪上秋风起,着身已微凉。 上午小熊那里传来捷报:跟楚楚街和豆果美食的合作谈下来了!事实证明,对我们产品感兴趣的用户...
    任宁阅读 382评论 0 2