当前位置:首页 > 日记 > 正文

PHP实现递归的三种基本方法

PHP实现递归的三种基本方法
递归函数是我们常用的一种函数。最基本的特征是函数本身调用,但在调用自身之前必须有条件判断,否则它将无限期地进行下去。递归函数的实现方式是什么本文列举了三条基本途径。对某些水产品的基本知识,原来需要了解,包括了解全局变量,静态变量,引用,并且了解他们的行动范围。递归函数也是求解无限级分类的一个好方法。如果你是在一个无限级分类感兴趣,请参阅PHP使用递归函数实现无限级分类。我习惯用通俗的话来解释复杂的事实。你真的不懂手册。

使用引用作为参数

不管如何,参考做或没有,你必须先了解什么是参考。参考就意味着两个变量名称相同的指向同一个存储器地址。原来,每个变量的内存地址分配,删除自己。现在,两变量共享内存地址。$ = $ B;。事实是美元一不小心与他们原来的内存地址,和$共享一个房间。所以在存储地址的值的任何变化都会影响两值。 U3000 U3000

函数以其自身的方式,甚至是每个动作的相同功能,递归函数被认为是一个参数,并成为两个函数之间形成数据共享的桥梁。虽然这两个函数看起来是在不同的地址运行,但它们实际上是在内存地址中运行的。
函数测试($ = 0,结果=数组()){
美元+;
如果($ < 10){
$结果;
测试($,$结果);
}
回声$;
返回$结果;

}

上面的例子非常简单,有一个1 { 1 } 2 { 3 } { 3 } = > 4 { 4 } = 5 { 5 } = 6 { 6 } = 7 { 7 } = 8 { 8 } { 2 } = 9)。

在这个例子中更有趣的是回声A的值。我相信很多人认为它是12345678910,但实际上它是1098765432。为什么下一个函数递归前进行的功能还没有被执行echoa。呼应的实际执行过程是当一个小于10的条件不满足,回声返回结果。对于上层,我们执行递归函数,并以同样的方式开始执行这一层的回声。

使用全局变量

使用全局变量来完成递归函数,请确保你理解一个全局变量是什么。全球状态变量只是一个参考,在函数外部的变量名称相同,一个变量的函数的范围仍在该函数的范围。这些变量价值观的改变,以及外部命名变量的值是自然变化。但是一旦使用相同名字的变量不再是参考相同的名称。使用全局变量来实现递归函数,它是没有必要了解这么深的层。如果我们保持全局变量的原始视图,我们就可以逻辑地理解递归函数。
函数测试($ = 0,结果=数组()){
全局结果;
美元+;
如果($ < 10){
$结果;
测试($,$结果);
}
返回$结果;
}
使用静态变量

我们经常在类中看到静态,今天我们在递归函数中使用它。记住静态的作用:只在调用第一个调用时初始化变量,并保留变量的值。

栗子:
函数测试(){
静态$ = 0;
回波计数;

数+;
}
测试();
测试();
测试();
测试();
测试();

执行这段代码的结果是什么是00000吗它不能是。它是01234。首先,我们调用测试()和静态来初始化第一个计数,然后在每次执行之后,我们将保持$值,并且不再初始化,这相当于直接忽略静态值= 0。

因此,可以将静态应用到递归函数的函数中。静态用于初始化需要用作桥梁的变量作为桥。
函数测试($ = 0){
静态结果=数组();
美元+;
如果($ < 10){
$结果;
测试(A);
}
返回$结果;
}

总结

所谓递归函数的重点是如何处理函数调用本身,如何确保所期望的结果能够在函数之间合理地传递,当然,在函数之间不需要递归函数。
函数测试($ = 0){
美元+;
如果($ < 10){
回声$;

测试(A);
}
}

面对这样的功能,我们不必伤害大脑,顺便说一句,对变量参考知识的深刻理解有助于解决这些问题。

最后,我们共享PHP实现递归和无限分类的方法。具体实施方法如下:

< PHP

面积=阵列(
阵列('id' = > 1,区域= >北京,'pid= > 0),
阵列('id' = > 2,区域= > 'guangxi ','pid= > 0),
阵列('id' = > 3,区域= > 'guangdong ','pid= > 0),
阵列('id' = > 4,区域= > 'fujian ','pid= > 0),
阵列('id' = > 11,区域= > 'chaoyang区','pid= > 1),
阵列('id' = > 12,区域= > 'haidian区','pid= > 1),
阵列('id' = > 21,区域= >,南宁,'pid= > 2),
阵列('id' = > 45,区域= >,福州,'pid= > 4),
阵列('id' = > 113,区域= >亚洲体育村,'pid= > 11),
阵列('id' = > 115,区域= > 'olympic村,'pid= > 11),
阵列('id' = > 234,区域= > 'wuming县,'pid= > 21)
);
函数T(ARR PID = 0美元,美元,美元利= 0){
静态数组=数组();
foreach($ ARR达v){
如果($ V { 'pid} = = $ PID){
回声str_repeat(
这里是输出为了看到效果。
$ $;
T($ ARR,$ V { 'id' },合利+ 1);
}
}
返回$列表;
}
元= $($区域);

print_r($列表);
>

相关文章

javascript文本模板用法示例

javascript文本模板用法示例

文本,模板,示例,电脑软件,javascript,本文演示了Javascript文本模板的用法,供大家参考: 这是我所指的prism.js算法的一个小功能,没什么好说的,作为一个程序猿例应理解秒。 字符串模板引擎类: / / *级* StringTemplate =功能( 可选模式:clpatt regexp }…

鼓励经典人格签名的经典签名

鼓励经典人格签名的经典签名

经典,人格,电脑软件,以下是鼓励经典人格签名的全部内容。 我知道我不努力工作。 我将为我的理想而战。 我不努力为将来做什么。 不要总是什么都不做,总有一天你会后悔的。 与其担心太多,不如去。 人生是逃亡者,不能坐以待毙。 当你踏入社会,你…

你可以永远是我快乐的个性签名快乐

你可以永远是我快乐的个性签名快乐

你可以,个性签名,我快乐,快乐,电脑软件,我听说有人说,喜欢费里斯的人在等待快乐的人不记得他们什么时候开始的。费里斯车轮上有幸福的名字,华丽的肢体,慢节奏和爱人的心。这篇文章给你一个快乐的签名,我希望你喜欢它。 1, 5亿人,只是爱上你。 2,…

插图绘制了一张常用于光合成的太阳

插图绘制了一张常用于光合成的太阳

教程,绘制,射线,插图,常用,本教程主要使用插图绘制光合成中常用的太阳光线。做教程很难。这种光线的效果图在海报设计中很常见。 本教程主要使用插图绘制光合成中常用的太阳光线。做教程很难。这种光线的效果图在海报设计中很常见。 让我…

Javascript在使用for循环时应该注意的问

Javascript在使用for循环时应该注意的问

循环,时应,摘要,电脑软件,Javascript,如果您想一次又一次地运行相同的代码,并且每次的值不同,使用循环非常方便。 大多数情况下,我们使用for循环,for循环部门常常在一个数组上循环,这是我们多次编写的。 第二次最佳循环 对于(var i = 0;i 什么 /…

动画输出后psGIF动画不移动什么

动画输出后psGIF动画不移动什么

动画,输出,电脑软件,psGIF,PS制作的动画怎么样朋友常问为什么我的动画保存PS图象处理软件不能移动。这应该是个人操作失误。让我们看看什么是方便的GIF成为JPG。 很多朋友经常问为什么我不能移动当我用PS图象处理软件动画;与你讨论这个问题…

ai完美混合色使用技巧介绍

ai完美混合色使用技巧介绍

混合,使用技巧,完美,电脑软件,ai,本教程是向朋友介绍ai完美混合色使用技巧,教程比较基础,非常适合初学者学习,推荐大家一起学习。 这个例子的朋友介绍人工智能的完美的混合颜色的方法,很难,觉得一起学习有用的。混合一般专色与专色后,中间的颜色…

HTML格式word2003教程word2003复制

HTML格式word2003教程word2003复制

教程,网页时,格式,电脑软件,HTML,它和查询互联网上的信息的研究是非常必要的。有时候你会发现你复制到word文档很有用,但将它复制在发现这些内容有许多格式,如字体、表格、边框、超链接等。如果一位编辑编辑,它可以非常麻烦。然而,许多朋友第一…

excel公式运算完成excel函数

excel公式运算完成excel函数

函数,运算,公式,电脑软件,excel,最近,人们对excel公式的操作提出了许多疑问,以便对excel公式的操作进行整理。 1。批量输入公式 选择要输入的区域,在编辑栏中输入公式,按Ctrl + Enter填充公式。 2。批量修改公式 如果是修改过的公式的同一部分,…

如何删除QQ聊天记录保护个人隐私QQ

如何删除QQ聊天记录保护个人隐私QQ

删除,聊天记录,个人隐私,技能,电脑软件,如何删除QQ聊天记录 在公共场所使用QQ时,必须删除QQ聊天记录,并将一些敏感的个人隐私数据交到不法分子手中,如何删除QQ聊天记录有几种方法可以删除QQ聊天记录。 1。删除QQ聊天记录与指定朋友 点击QQ客户…

如何excel2010限制柱excel2010教程

如何excel2010限制柱excel2010教程

空间,教程,电脑软件,Excel是微软办公系统的电子表格程序。你可以用Excel创建一个工作簿(收集电子表格)并设置工作簿的格式对数据进行分析,并做出更明智的业务决策。特别是,您可以使用Excel来跟踪数据,生成的数据分析模型,编制计算公式计算数据,在…

如何在QQ上写QQ

如何在QQ上写QQ

上写,如何在,电脑软件,QQ,当你纠结于如何删除短信、如何写日志以及如何在移动QQ上修改日志时,手机QQ空间客户端已经为大家解决了。下面是一个讲解如何在QQ手机上写日志的教程,希望能对你有所帮助。 新版本的手机QQ暂时不支持日志的编写,我们可…