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($列表);
>

tag:基本方法递归三种电脑软件php

相关内容