PHP递归的三种常用方式

yipeiwu_com7年前PHP代码库

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

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

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

递归的三种常用技法:

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

一 静态变量方式

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 

递归经常被用在处理无限级的问题上,通过以上三种手法再结合实际情况,灵活运用就可以解决自己的无限级问题。如果你是新手,我很乐意在评论里看到你的困惑。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【宜配屋www.yipeiwu.com】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

crontab无法执行php的解决方法

本文分析了crontab无法执行php的解决方法。分享给大家供大家参考,具体如下: 用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决cro...

PHP sprintf() 函数的应用(定义和用法)

语法sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需。转换格式。 arg1 必需。规定插到 format 字符串中第一个 % 符号...

PHP中调用SVN命令更新网站方法

想说写一个通过网页就可以执行 SVN 升级的程序,结果并不是我想得那样简单,有一些眉角需要注意的说。 先以 Apache 的用户帐号执行 SVN checkout,这样 Apache 才...

php curl中gzip的压缩性能测试实例分析

本文实例分析了php curl中gzip的压缩性能测试。分享给大家供大家参考,具体如下: 前因: 请求接口次数很多,每日两亿多次,主要是有些接口返回数据量很大高达110KB(为了减少请求...

浅谈php调用python文件

浅谈php调用python文件

关于PHP调用Python数据传输问题 这是以前大学时做项目出现的问题,现在把它挪上来,希望给遇到问题的未来大佬给出一些小的思路,请大佬们不要大意的帮我改正,如果出现问题或者有更好的解决...