• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现递归的三种方法

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

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

    一、利用引用做参数

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

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

    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]

    二、利用全局变量

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

    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]

    三、利用静态变量

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

    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 递归的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • php求斐波那契数的两种实现方式【递归与递推】
    • php菜单/评论数据递归分级算法的实现方法
    • PHP实现无限极分类的两种方式示例【递归和引用方式】
    • PHP利用递归函数实现无限级分类的方法
    • PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
    • PHP递归写入MySQL实现无限级分类数据操作示例
    • PHP数组递归排序实现方法示例
    • PHP迭代与递归实现无限级分类
    上一篇:laravel开发环境homestead搭建过程详解
    下一篇:php 利用socket发送GET,POST请求的实例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现递归的三种方法 PHP,实现,递归,的,三种,方法,