4.3 递归函数
函数在定义完成后,会保存在文件中等待调用。在其他脚本里才能调用已经定义的函数。但有些情况下,函数会调用其本身参与运算,这类函数称为递归函数。代码如4-2演示了使用递归函数显示10个表格,每一个表格拥有10个单元格。
代码4-2 递归函数演示4-2.php
01 <?php 02 function draw($total,$line=1,$row=1,$result="<table border=2><tr>"){ 03 if($line>$total){ 04 return; 05 }else{ 06 $result .= "<td>$line</td>"; 07 $line++; 08 $row++; 09 // 调用函数本身,实现递归 10 draw($total,$line,$row,&$result);// 此行使用了引用符号 11 } 12 echo $result .= "</tr></table>"; 13 } 14 draw(10); 15 ?>
【代码解析】代码使用了引用符号,在运行这段代码时,去掉引用符号,请读者观察运行结果的变化。正确使用递归函数,可以使许多工作变得简单。最典型的例子就是建立一个无限分级的菜单。上述代码的运行结果如图4-2所示。
图4-2 递归函数运行结果