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边学边教》(01.开篇――准备工作)
Dec 13 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
用PHP的ob_start();控制您的浏览器cache!
Feb 14 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
stripos函数知识点实例分享
Feb 11 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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
Terran兵种对照表
2020/03/14 星际争霸
php实现邮件发送并带有附件
2014/01/24 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
Python适配器模式代码实现解析
2019/08/02 Python
解决Python对齐文本字符串问题
2019/08/28 Python
详解python 中in 的 用法
2019/12/12 Python
python二维图制作的实例代码
2020/12/03 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
线程同步的方法
2016/11/23 面试题
大学生志愿者感言
2014/01/15 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
竞聘上岗演讲
2014/05/19 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
确保工程质量承诺书
2015/04/29 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技