递归函数就是自己调用自己的函数,但一定要注意,需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,否则会陷入死循环无法自拔。
我们可以通过一个小案例来认识一下递归:
<? 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);
需求分析: 我们需要将数据库中添加的所有课程都列出来
实践步骤:
完成的大致思路就是如此,具体的操作需要不断的项目中练习和实践才能理解透其中的奥义。
相关文章推荐: