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制作新闻系统的思路
Oct 09 PHP
用函数读出数据表内容放入二维数组
Oct 09 PHP
php实现网站插件机制的方法
Nov 10 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php删除数组元素示例分享
Feb 17 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
laravel实现于语言包的完美切换方法
Sep 29 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内存使用情况如何获取
2015/10/10 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
python实现数据图表
2017/07/29 Python
django query模块
2019/04/20 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
印度购物网站:TATA CLiQ
2017/11/23 全球购物
《长江之歌》教学反思
2014/04/17 职场文书
期末学生评语大全
2014/04/24 职场文书
大专生找工作自荐书
2014/06/10 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
js之ajax文件上传
2021/05/13 Javascript