最新公告:最新上线Yii2实战教程,欢迎大家订阅

PHP递归算法的一个实例

1 851

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

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

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

作者:PHP学习网,本文 PHP递归算法的一个实例 版权归作者,免费文章欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

评论: 1 条 访客:1 条, 博主:0 条 查看引用: 0

  • 两个蛋黄吗    -49楼

    这个好玩

发表评论:

您必须 才能发表留言!

Yii2实战教程

一套真正的从入门到实践的教程,不说废话的讲解,实例操作,作者的亲自指导,有问题随时提问。现在购买即可获取全套完整教程

PHP学习网 – 公众账号

最新文章
阿里云 lnmp一键安装包远程访问Mysql 187
php memcached扩展安装 174
vagrant package 打包命令的用法 154
Warning: require_once(): open_basedir restriction in effect 错误 237
yaf框架教程(6)- yaf路由配置 480
vagrant问题汇总 480
ubuntu系统两个PHP版本坑坏人 455
yaf框架教程(5)- yaf框架的启动文件 392
yaf框架教程(4)- yaf框架的入口文件 373
ElasticSearch5.5.1 单台服务器部署多个节点 467
随机文章
svn post-commit钩子实现代码上传到web目录 576
阿里云服务器Nginx支持Thinkphp Rewrite 重写 1054
php中const与define的使用区别 1170
ubuntu+nginx+php+mysql安装配置方法命令 747
开启pathinfo模式-阿里云服务器 1009
yii目录结构 732
PHP面向对象:instanceof 运算符 850
wordpress get_the_category()函数 1386
风影博客主题 1217
PHP设计模式-单例模式 1413
切换注册

登录

切换登录

注册