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 03 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
xml在joomla表单中的应用详解分享
Jul 19 PHP
apache和php之间协同工作的配置经验分享
Apr 08 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php获取远程文件内容的函数
Nov 02 PHP
php输出含有“#”字符串的方法
Jan 18 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
PHP命令Command模式用法实例分析
Aug 08 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP模块化安装教程
2016/06/01 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
Python psutil模块简单使用实例
2015/04/28 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Python 项目转化为so文件实例
2019/12/23 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
python xlsxwriter模块的使用
2020/12/24 Python
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
会计自我鉴定
2013/11/02 职场文书
社区工作者思想汇报
2014/01/13 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
授权委托书
2014/07/31 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
Python保存并浏览用户的历史记录
2022/04/29 Python