好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

3-9: php递归函数

递归函数,递归只是一个名字,而递归函数的规定:函数体内调用函数自己。

这需要一定的思维理解深度,本章学习过程当中,如果你实在是有思维无法跟上的地方,可以跳过本章不用学习。

因为,实际工作中,用递归有用到,但是使用量不会很大。递归在实际工作中主要是用在:文件和文件夹操作的时候有使用到。

解决办法:
万一你的思维跟不上本章,你可以直接了解本块的原理后,用现成的文件和文件夹处理函数或文件处理类就可以。

我说几个思维上的盲区:

    1.代码是从上到下执行的,所有代码没有exit等停止符,函数必须执行完。

    2.如果函数从函数A跳至函数B后,必须把函数B执行完成再执行函数A余下的代码。

    3.递归函数必须要能执行完有结束条件,不然函数就会限入死循环。函数会永远的自我执行下去。

我们来写一代码码来理解一下:

<?php

$num = 10;


//调用一次函数A();
A($num);



function A( $arg ){

   echo $arg;

   //在函数A里面去,跑去执行函数B去了
   B($arg);


   echo '我们需要不断的努力,努力到上天都为我们感动';


   echo $arg.'<br />';
}

function B( $number ){

       echo $number;


       echo '俺是狗蛋,执行完了<br />';

}


?>

通过上例大家会发现:

    1.执行函数A到一半的时候,跑去执行了函数B

    2.执行完函数B,先显示出来的是:“俺是狗蛋,执行完了”,接着显示的才是:“我们需要不断的努力,努力到上天都为我们感动”

    3.也就是证明了我们所说思维盲区里面的内容,代码从上到下执行,代码必须执行完。

    我们来写一个简单的递归代码,让函数自己调用自己。

<?php

$n = 2;

function dg( $n ){

   echo $n.'<br />';

   $n = $n - 1;

   if($n > 0){
       //在函数体内调用了dg自己哟
       dg($n);

   }else{

       echo '--------------';
   }

   echo '俺是狗蛋,俺还没执行' . $n . '<br />';

}
?>

查看更多关于3-9: php递归函数的详细内容...

  阅读:84次