PHP递归函数详解

什么是递归函数呢?

递归函数即为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白。

下面就用一个例子为大家详解递归:

<?php

//声明一个函数,用于测试递归
function test($n){
echo $n.''; //在函数开始输出参数的值
if($n>0){ //判断参数是否大于0
test($n-1); //如果参数大于0则调用自己,并将参数减1后再次传入
}else{ //判断参数是不大于0
echo "<-->";
}
echo $n.'';
}
test(2);// 调用test函数将整数2传给参数

?>

大家首先思考一下,这个例子最终的输出结果是什么?

好,我们来看一下本函数输出的结果:

2 1 0 <–> 0 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,此时0>0的条件不满足,不在执行test()函数,而是echo “<–>”,并且执行后面的 echo 0;

此时,输出的内容如图中显示的红色部分,此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行;

也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo。

在函数执行的第一到第三步,函数输出的的是绿色部分,红色部分还“没来及”输出,就该调用自己执行操作,依次类推,直到流程执行到不再满足调用自己的条件,输出“<–>”,此时,流程该执行前面“没来及”输出的代码。

所以结果: 2 1 0 <-> 0 1 2

CSS笔记

行级元素与块级元素

2020-2-5 10:52:11

PHP笔记

mac搭建php开发环境

2020-3-1 1:53:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索