gpt4 book ai didi

PHP实现递归的三种方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 35 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP实现递归的三种方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则会无限调用下去.

一般来说,递归函数可利用全局变量,引用,静态变量,但需对他们的作用范围有所理解。递归函数也是解决无限级分类的一个很好的技巧.

1、利用引用做参数 。

PHP 的引用允许用两个变量来指向同一个内容,例如 $a = &$b; 这意味着 $a 和 $b 指向了同一个变量.

如下例子,因为 $data 使用了引用传递,所以数据会一直累加.

?
1
2
3
4
5
6
7
8
9
10
11
function recursion(& $data = [], $i = 0)
{
  if ( $i < 10) {
   $data [] = $i ;
   $i ++;
   $this ->recursion( $data , $i );
  }
  return $data ;
}
// 调用
$this ->recursion(); // [0,1,2,3,4,5,6,7,8,9]

2、利用全局变量 。

global 在函数内申明变量不过是外部变量的同名引用。变量的作用范围仍然在本函数范围内。改变这些变量的值,外部同名变量的值自然也改变了.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function recursion( $data = [], $i = 0)
{
  global $data ;
  if ( $i < 10) {
   $data [] = $i ;
   $i ++;
   $this ->recursion( $data , $i );
  }
  return $data ;
}
 
// 调用
$this ->recursion(); // [0,1,2,3,4,5,6,7,8,9]

3、利用静态变量 。

静态变量只在第一次调用时初始化。仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function recursion( $i = 0)
{
  static $data = [];
  if ( $i < 10) {
   $data [] = $i ;
   $i ++;
   $this ->recursion( $i );
  }
  return $data ;
}
 
// 调用
$this ->recursion(); // [0,1,2,3,4,5,6,7,8,9]

以上就是PHP实现递归的三种方法的详细内容,更多关于PHP 递归的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/woods1815/archive/2020/07/04/13234610.html 。

最后此篇关于PHP实现递归的三种方法的文章就讲到这里了,如果你想了解更多关于PHP实现递归的三种方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com