PHP递归的三种常用方式


Posted in PHP onFebruary 28, 2019

递归:函数自己调用自己的一种编程方法,类似于循环,所以递归调用的函数中必须有终止条件,否则就会成为死循环

无限级:其实并不是真正的无限级,只是层级不确定,所以我们称之为无限级

因为常用递归实现无限级分类,所以我们习惯说无限级的时候带上分类。

递归的三种常用技法:

静态变量、全局变量、引用

一 静态变量方式

function loop(){
 static $i = 0;
 echo $i.' ';
 $i++;
 if($i<10){
     loop();
 }
}
loop();//输出 0 1 2 3 4 5 6 7 8 9

二 全局变量方式

$i = 0;
function loopGlobal(){
  global $i;
 echo $i.' ';
 $i++;
 if($i<10){
    loopGlobal();
 }
}
loopGlobal();//输出 0 1 2 3 4 5 6 7 8 9

三 引用传参方式

function loopReference(&$i=0){
 echo $i.' ';
 $i++;
 if($i<10){
  loopReference($i);
 }
}
loopReference();//输出 0 1 2 3 4 5 6 7 8 9

递归经常被用在处理无限级的问题上,通过以上三种手法再结合实际情况,灵活运用就可以解决自己的无限级问题。如果你是新手,我很乐意在评论里看到你的困惑。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
php程序效率优化的一些策略小结
Jul 17 PHP
php开发环境配置记录
Jan 14 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php文件下载处理方法分析
Apr 22 PHP
PHP简单实现DES加密解密的方法
Jul 12 PHP
php批量删除操作(数据访问)
May 23 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP学习记录之数组函数
Jun 01 PHP
PHP递归算法的简单实例
Feb 28 #PHP
PHP根据key删除数组中指定的元素
Feb 28 #PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 #PHP
PHP中rename()函数的妙用讲解
Feb 28 #PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 #PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 #PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 #PHP
You might like
PHP语法速查表
2007/01/02 PHP
PHP实现的简单日历类
2014/11/29 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
python集合类型用法分析
2015/04/08 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
详解python播放音频的三种方法
2019/09/23 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
自我评价的正确写法
2013/09/19 职场文书
自荐信格式的六要素
2013/09/21 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
贷款担保书范文
2014/05/13 职场文书
人事局接收函
2015/01/30 职场文书
胡桃夹子观后感
2015/06/11 职场文书
Python的这些库,你知道多少?
2021/06/09 Python