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中用正则表达式清除字符串的空白
Jan 17 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php中hashtable实现示例分享
Feb 13 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
php快递单号查询接口使用示例
May 05 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
PHP扩展类型及安装方式解析
Apr 27 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
网站当前的在线人数
2006/10/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
thinkPHP查询方式小结
2016/01/09 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
js 作用域和变量详解
2017/02/16 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python处理excel绘制雷达图
2019/10/18 Python
农贸市场管理制度
2014/01/31 职场文书
入党申请自荐书范文
2014/02/11 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
施工安全责任书范本
2014/07/24 职场文书
岗位安全生产责任书
2014/07/28 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2015年计生协会工作总结
2015/04/24 职场文书