递归,就是自己调用自己,当满足某条件时层层退出(后进先出)。

----------------------------------------------------------------------------------------------

就像你要完成一项任务A,结果完成任务A之前必须先完成任务B,完成B前必须先完成C。。。。直到所以前提任务完成。

你所接触的任务顺序是:A->B->C,也就是先进

完成任务的先后顺序是:C->B->A,也是就是(先出)

两者结合起来,不难看出后进先出

在这个过程中,不管完成任C还是B或A,都是你自己本身完成的,也就是函数本身

----------------------------------------------------------------------------------------------

完成任务的过程是不是和大家玩的有些游戏很相似,比如地下城,完成某任前必须先完成前得任务。

再比如DOTA,想要买狂战斧,但不得不把所需要的装备买好。道理大同小异吧。

----------------------------------------------------------------------------------------------

上述所讲的例子,针对于对递归完全不了解的人可看,如果有什么不恰当的地方,望指出,不然把大家祸害了,

那我的罪过就大了。哈哈。

----------------------------------------------------------------------------------------------

function test($n)
{
    if($n ==1 || $n ==0) return 1;
    return test($n -1) +2;
}

echo test(5);

test(5) = test(4) + 2 = 7+2=9;  4
test(4) = test(3) + 2 = 5+2=7;  3  
test(3) = test(2) + 2 = 3+2=5;  2
test(2) = test(1) + 2 = 1+2=3;  1  
test(1) = 1;                    0 //当$n = 1时,已无法继续调用test,所以递归将层层退出(遵循后进先出的原则)
//后进先出,才能层层取得结果,如:先取得test(2)的值,才能计算出test(3)值,依此类推

只要明白递归的原理就可以了,如果你试图用大脑层层想下去,我估计记忆不好点一点的就陷进去了,结果搞得很头疼。

php 递归 适合刚刚接解递归的人看的更多相关文章

  1. 刚開始学习的人制作VMOS场效应管小功放

    VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...

  2. hdu5044 Tree 树链拆分,点细分,刚,非递归版本

    hdu5044 Tree 树链拆分.点细分.刚,非递归版本 //#pragma warning (disable: 4786) //#pragma comment (linker, "/ST ...

  3. SQL Server中CTE的另一种递归方式-从底层向上递归

        SQL Server中的公共表表达式(Common Table Expression,CTE)提供了一种便利的方式使得我们进行递归查询.所谓递归查询方便对某个表进行不断的递归从而更加容易的获得 ...

  4. Oracle Statspack报告中各项指标含义详解~~学习性能必看!!!

    Oracle Statspack报告中各项指标含义详解~~学习性能必看!!! Data Buffer Hit Ratio#<#90# 数据块在数据缓冲区中的命中率,通常应该在90%以上,否则考虑 ...

  5. wxWidgets刚開始学习的人导引(2)——下载、安装wxWidgets

    wxWidgets刚開始学习的人导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxS ...

  6. wxWidgets刚開始学习的人导引(1)——前言

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  7. 作为刚開始学习的人应该怎样来学习FPGA

    FPGA作为一种高新的技术.已经逐渐普及到了各行各业.不管是消费类.通信类.电子行业都无处不在它的身影,从1985年第一颗FPGA诞生至 今,FPGA已经历了将近20多个年头,从当初的几百个门电路到如 ...

  8. 图文并茂VLAN详解,让你看一遍就理解VLAN

    一.为什么需要VLAN 1.1.什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.V ...

  9. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

随机推荐

  1. (转)C# 解析 json

      原文: http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-json.html JSON(全称为JavaScript Object N ...

  2. cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas

    在 cocos2d-x 中有三个类可以在层或精灵中添加文字: LabelTTF LabelBMFont LabelAtlas LabelTTF 直接支持使用 TTF 字库,可以支持全部的中文,但是效率 ...

  3. VC++2005下的ADO SQL语句(like,count,distinct)和操作(转)

    http://blog.sina.com.cn/s/blog_56fd66a70100hxjf.html http://timke.blog.163.com/blog/#m=0 环境:MFC  Dia ...

  4. Oracle 删表前验证表名是否存在并且删除

    DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableN ...

  5. WebApi简单使用

    一.建立一个WebApi项目 WebApi项目的文件和MVC的基本项目内容差不多,都有Models View Controller等,区别在于WebApi的控制器继承的不是Controller类,而是 ...

  6. h5 吸顶效果 顶部悬浮

    window.onscroll = function(){ var scrollTop = document.documentElement.scrollTop || document.body.sc ...

  7. JNI基础概念以及原理-2016.01.11

    Java到C数据类型转换 1 基础类型 Java与Jni类型对应关系 2 String到char数组 具体使用方式 JNIEXPORT jstring JNICALL Java_com_zhoulee ...

  8. docker1.12在cento7里的跨多主机容器网络

    docker1.12在cento7里的跨多主机容器网络

  9. IE 下的z-index BUG问题

    今天做项目的时候在IE7 碰到了IE 的 z-index 问题: 然后问了几个朋友,总结了一下z-index问题的几个要点: 1.z-index 是要在position为relative或者absol ...

  10. DedeCMS中function='Html2Text(@me)的用法分析

    本文实例讲述了DedeCMS中function='Html2Text(@me)的用法.分享给大家供大家参考.具体分析如下: 在使用dedecms建站网站时候,需要用到过滤html代码,调出纯文本的代码 ...