递归:函数自己调用自己的一种编程方法,类似于循环,所以递归调用的函数中必须有终止条件,否则就会成为死循环

无限级:其实并不是真正的无限级,只是层级不确定,所以我们称之为无限级

因为常用递归实现无限级分类,所以我们习惯说无限级的时候带上分类。

递归的三种常用技法:

静态变量、全局变量、引用

一 静态变量方式

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递归的三种常用方式相关推荐

  1. php递归内存,php递归内存怎么释放

    如果PHP对象存在递归引用,就会出现内存泄漏.这个Bug在PHP里已经存在很久很久了,先让我们来重现这个Bug,代码如下:<?php class Foo { function __constru ...

  2. php结束递归函数,php递归内存怎么释放

    如果PHP对象存在递归引用,就会出现内存泄漏.这个Bug在PHP里已经存在很久很久了,先让我们来重现这个Bug,代码如下:<?php class Foo { function __constru ...

  3. java 递归_Java的递归、如何与流相结合

    递归技术 需求:扫描D:est所有子文件夹及子子文件夹下的.jpg文件. 我们如果用循环来做这件事,我们不知道循环的结束条件,也不知道到底有多少层,所以比较麻烦. 我们可以用一种新的思想:递归. 递归 ...

  4. 二叉树创建及遍历算法(递归及非递归)(转)

    //二叉树处理头文件 //包括二叉树的结构定义,二叉树的创建,遍历算法(递归及非递归), /* 作者:成晓旭 时间:2001年10月7日(18:49:38-20:00:00) 内容:完成二叉树创建,二 ...

  5. java怎么递归_Java的递归、如何与流相结合

    递归技术 需求:扫描D:\test所有子文件夹及子子文件夹下的.jpg文件. 我们如果用循环来做这件事,我们不知道循环的结束条件,也不知道到底有多少层,所以比较麻烦. 我们可以用一种新的思想:递归. ...

  6. 递归 尾递归_递归,递归,递归

    递归 尾递归 by Michael Olorunnisola 通过Michael Olorunnisola 递归,递归,递归 (Recursion, Recursion, Recursion) Bef ...

  7. 二叉树的先序,中序,后序,层次的递归及非递归遍历

    昨天写数据结构关于二叉树的几种顺序的递归及非递归遍历的程序,后续遍历有点难.现在把程序给大家参考一下,有些思路参考自:http://www.cnblogs.com/dolphin0520/archiv ...

  8. 二叉树的先中后序递归和非递归遍历(数据结构作业)

    一.设计思想 我创建二叉树是用的先序创建,其中用'#'代表空节点. 1.递归先序遍历 (1)如果当前节点为空节点(用'#'代表空节点),结束当前函数 (2)打印当前节点 (2)递归当前节点的左子树 ( ...

  9. 二叉树的遍历(递归、非递归)

    背景 二叉树是一种很基本的数据结构.很多地方能看到它的身影,比如大名鼎鼎的霍夫曼编码(好了,别问我再比如了,见识浅薄,真不知道更多了...)它的结构很简洁.巧妙. 本文讨论二叉树的常见遍历方式的代码实 ...

最新文章

  1. java 多线程 信号_Java多线程——Semaphore信号灯
  2. 【线性规划和网络流24题】
  3. 05-iOS蓝牙开发总结
  4. Hadoop之HDFS读写数据流程
  5. [运动][组合]睡前运动
  6. 第三篇:白话tornado源码之请求来了
  7. angular学习笔记(九)-css类和样式2
  8. Codevs 1684 垃圾陷阱
  9. 校园网打开IEEE 显示未登录
  10. C# 实体类的get与set
  11. 成功解决gyp verb ensuring that file exists: C:\Python27\python.exe gyp ERR! configure error gyp ERR! sta
  12. tomcat版本区别
  13. 如何进行自学软件测试?
  14. 千兆路由器怎么设置网速最快_安装了千兆路由器,为什么下载速度很慢?
  15. Longest Increasing Subsequence
  16. 下载想看的英文kindle 电子书
  17. 你以为的匿名评价,原来并没真的匿名
  18. ElementUI实现el-form表单重置功能按钮
  19. 多线程基础:两种实现方式
  20. 【Spring】1.核心原理解析

热门文章

  1. 如何使用工具包 (NLTK) 开发NLP 项目?(附教程)
  2. 基于灰度共生矩阵(GLCM)的图像纹理分析与提取
  3. CCD工业相机、镜头倍率及相关参数计算方法
  4. 机器视觉边缘检测算法详解
  5. 基于Python的OpenCV轮廓检测聚类
  6. 一文图解卡尔曼滤波(Kalman Filter)
  7. Java如何执行操作系统的CMD命令行
  8. 我仅使用到的dd if
  9. Ponemon:2018年度数据泄露成本分析报告
  10. linux下mysql主从复制搭建