递归简单来说就是自己调用自己

比如说

A向B问路 但是B不知道 于是乎B问C 但是C不知道 于是乎问D D知道 D把怎么走告诉C C在把怎么走告诉B B再把怎么走告诉A

A虽然是最先问的 但是是最后一个知道怎么走的 这是一个在函数内部打开函数(它自己)和在达到目的不断关闭函数(它自己)直到返回第一遍执行的函数的过程

从上面这句话可以得出 递归必须要有一个递归边界 也就是这个目的 同时它是有一个向前进(打开)和返回(关闭)的步骤的

写个简单的递归

function t($a){
        echo '这是前进段!';
        echo $a.'<br />';
        if($a<10){return $a;}
        t($a-1);
        echo '这是返回段!';
        echo $a.'<br />';
}
t(39);

PHP递归的简单理解的更多相关文章

  1. javascript --- 递归的简单理解

    递归函数大家都应该比较熟吧?那么,如何在JavaScript中书写一个完美的递归函数呢?且听我娓娓道来. 递归函数 写的时候,查了一下维基百科对递归函数的定义,恕我愚钝,简直太深奥了!所以,我还是简单 ...

  2. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  3. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  4. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

  5. Js 职责链模式 简单理解

    js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...

  6. Deep learning:四十六(DropConnect简单理解)

    和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...

  7. Deep learning:四十二(Denoise Autoencoder简单理解)

    前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...

  8. 简单理解dropout

    dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...

  9. 我们为之奋斗过的C#-----C#的一个简单理解

    我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...

  10. 简单理解ECMAScript2015中的箭头函数新特性

    箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...

随机推荐

  1. unity 资源打包,MD5值计算注意点

    仅作记录: unity3d在修改资源时,有些类型的资源修改的是源文件,比如:fbx,mp3,.jpg,.png等.这些资源是外部资源导入unity3d中,untiy3d导入编译时,生成相应的meta文 ...

  2. 增、改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN

    转载留存 IT_METHODS    LIKE    BAPI_ALM_ORDER_METHOD处理方法,必选项,存储CREATE CREATETONOTIF CHANGE DELETE RELEAS ...

  3. 有符号数 无符号数 原码 补码 反码 java用补码表示

    计算机数字的储存分为:1.无符号数,2.有符号数 无符号数:只能表示正数.每一位数都代表2的幂次方.只有地址用无符号数,无符号数不进行算术操作,之进行指针的加减.地址并不会造成错误的结果,而是产生一个 ...

  4. vue 切换json语言包

    1.在asstes文件夹新建 2.在main.js读取本地json语言包 3.在vue页面t这样引用

  5. CentOS7 修改root密码

    能登录系统修改root密码 passwd root(可以是其他什么用户) 输入新密码(两次)   忘记root密码不能进入系统,修改root密码   1.开机进入grub界面按e进入单用户编辑模式 2 ...

  6. 使用vite创建vue3+ts项目完整流程

    1.创建项目 npm init vite@latest 依次输入项目名称.选择vue.选择ts 2.引入依赖 cd 项目名称 npm install 3.启动项目 npm run dev 4.引入vu ...

  7. 证书profile 申请

    ios  云打包   证书 和密码  在之前的笔记当中已申请好 证书profile 文件申请 登录苹果开放平台 申请前要添加身份,设备,设备那需要填写udid 方法链接https://www.jian ...

  8. 【收藏】js数组图

  9. 狂神day3

    放个假,有几天没有学习了,也好久没有更新博客了 IDEA使用 在上一次的时候,我们直接建立一个工程写了一个"helloworld"的java文件,今天首先说的是先建立一个空的工程, ...

  10. switch组件的使用

    正常情况下,path和component是一一对应的关系 switch可以提高路由匹配效率(单一匹配)