标签: php递归

  • php递归的正确写法

    常规写法

    function digui($tiaojian){

          if ($tiaojian) {

          return $data;

    } else{

          return digui(); }

    }

    注意:条件不成立时,一定要return 递归函数。不然无法正常返回

    如果递归只是为了输出。可以简写:

    function digui($tiaojian){

    if ($tiaojian) {

    echo $data;

    } else{

    digui();

    }

    }

    引用写法

    function digui($tiaojian,&$result){

    if ($tiaojian) {

    $result=$data;

    } else{

    digui();

    }

    }

     

    静态变量

    function digui(){

    static $count=0;

    echo $count;

    $count++;

    }

    digui();

    digui();

    digui();

    digui();

    digui();

    输出结果为:0 1 2 3 4
    注意:静态变量方法一定要谨慎使用。因为每次调用该方法的时候,都会对原来最早定义这个变量方法的基础上去操作。

    甚至 unset 对静态变量也无法销毁

    function digui(){

    static $count=0;

    echo $count;

    $count++;

    unset($count);

    }

    digui();

    digui();

    digui();

    digui();

    digui();

     

    这段代码依旧输出 0 1 2 3