zoukankan      html  css  js  c++  java
  • PHP 递归

    function test($a=0,&$result=array()){
    $a++;
    if ($a<10) {
      $result[]=$a;
      test($a,$result);
    }
    echo $a;
    return $result;
     
    

      

    上面的例子非常简单,以a<10作为判断条件,条件成立,则把a赋给result[];

    将result 的引用传入函数,会将每一次递归产生的a添加到结果数组result。因而本例生成的$result数组是

    Array (

         [0] => 1

         [1] => 2

         [2] => 3

        [3] => 4

        [4] => 5

        [5] => 6

        [6] => 7

         [7] => 8

         [8] => 9

    ) 。


    本例比较有意思的是echo a  的值。相信很多人认为是12345678910吧,其实不然,是1098765432。为什么呢?

     因为函数还没执行echo  a   前就进行了下一次的函数递归。真正执行echo a是当a<10条件不满足的时候,echo a,返回result,对于上一层而言,执行完递归函数,开始执行本层的echo $a,依次类推。

  • 相关阅读:
    Applet
    Tutorial中代码的区别及不同效果
    Session
    代码解析&Filter用户授权例子
    Web的后台运作过程
    XML
    数据库
    spring常用注解
    spring mvc 常用注解
    @requestMapping
  • 原文地址:https://www.cnblogs.com/yszr/p/12963722.html
Copyright © 2011-2022 走看看