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 写文本日志实现代码
May 18 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
php强制用户转向www域名的方法
Jun 19 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP的几个常用加密函数
Feb 03 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
php json转换相关知识(小结)
2018/12/21 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
jQuery参数列表集合
2011/04/06 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
利用aardio给python编写图形界面
2017/08/21 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Numpy之reshape()使用详解
2019/12/26 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
经典c++面试题五
2014/12/17 面试题
财产保全担保书范文
2014/04/01 职场文书
助残日活动总结
2014/08/27 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
教师先进事迹材料
2014/12/16 职场文书
2015年消防工作总结
2015/04/24 职场文书
计划生育目标责任书
2015/05/09 职场文书
2016年寒假生活小结
2015/10/10 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
MongoDB 常用的crud操作语句
2021/06/20 MongoDB