递归函数

阅读数:1967 发布时间:2016-06-06 23:59:37

作者:mj001 标签: 递归 php 马骏001

什么是递归函数?

递归函数就是自己调用自己的函数,但一定要注意,需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,否则会陷入死循环无法自拔。

我们可以通过一个小案例来认识一下递归:

<? php
function test($n){ //创建一个函数用来测试
    echo $n." "; //先打印出传递进来的参数
    if($n>0){ //判断如果数值>0!!很重要!!!
        test($n-1); //满足条件就调用自身,-1
    }else{
        echo "<-->"; //不满足条件则进行其他操作
    }
}
test(10);
?>

上面的例子,出来的结果就是:
10 9 8 7 6 5 4 3 2 1 0 <-->

强调一遍: 递归一定要加限制条件!!!

项目实战中的递归

<? php
function coursesTree($fid, $id)
{
    $result = Courses::courses_list($id);
    $rows = count($result);
    for ($i=0; $i < $rows; $i++) {
        echo "<li>fid".$fid."==id".$id."==".$result[$i]['courses_name']."";
        echo "<a href=courses_modify.php?fid=".$fid."&courses_id=".$result[$i]['courses_id'].">修改</a>";
        echo " - <a href=courses_oper.php?action=del&fid=".$fid."&courses_id=".$result[$i]['courses_id'].">删除</a> - ";
        echo "<a href=courses_add.php?id=".$result[$i]['courses_fid']."&courses_id=".$result[$i]['courses_id'].">添加课程</a>";
        echo "<ul>";
        echo coursesTree($result[$i]['courses_fid'], $result[$i]['courses_id'])."</ul></li>";
    }
}

coursesTree($fid, $id);

需求分析: 我们需要将数据库中添加的所有课程都列出来

实践步骤:

  1. 首先定义一个coursestree函数,通过id和fid将最外层的课程列出来
  2. 在最外层列出的课程里面,再次调用函数自身,将子项也列出来
  3. 这里的判断条件就是根据id取出的数据条数,如果超过这个数目,递归结束

完成的大致思路就是如此,具体的操作需要不断的项目中练习和实践才能理解透其中的奥义。

相关文章推荐: