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 相关文章推荐
MySQL授权问题总结
May 06 PHP
PHP高级OOP技术演示
Aug 27 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
Apr 08 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
php生成高清缩略图实例详解
Dec 07 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
PHP之header函数详解
Mar 02 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
PHP5中MVC结构学习
2006/10/09 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
JavaScript中的类继承
2010/11/25 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
一个支付页面DEMO附截图
2014/07/22 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
Python入门学习之字符串与比较运算符
2015/10/12 Python
Python快速排序算法实例分析
2017/11/29 Python
用Python实现数据的透视表的方法
2018/11/16 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
python数据类型强制转换实例详解
2020/06/22 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
会计专业毕业生求职信分享
2014/01/03 职场文书
春节联欢会策划方案
2014/05/16 职场文书
求职简历自荐信
2014/06/18 职场文书
2016寒假假期总结
2015/10/10 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Java基础——Map集合
2022/04/01 Java/Android
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript