php基础第三天(递归函数)
今天我们来说说什么递归函数,对于递归函数,想必大家都应该听说过,具体一些术语,我就不想照搬照抄了,我觉得递归函数就是在函数本身里面在调用自己,说起来好像懂得了什么是递归但是你真的理解了吗?
接下来我们来看一个例子
<?php
function func($total,$line=1,$row=1,&$result="<table border=2><tr>"){
if($line>$total){
return;
}else{
$result.="<td>$line</td>";
$line++;
$row++;
func($total,$line,$row,$result);
}
$result.="</tr></table>";
echo $result;
}
func(10);
?>
说句真心话,我刚开始真的不是很理解,后来经过思考大致明白了他是怎么回事了,一开始是随着\$line的值增加,td标签也跟着增加,直到$line的值为11,将会结束func(\$total,\$line,\$row,\$result)(其中此时参数中的\$line和\$row值均为11),当结束此函数,\$line和\$row的值将会跳到上回的10,此时紧接着执行\$result.="</tr></table>";紧接着输出下一行表格(也是10个单元格---因为他用的传参方式是传址,什么叫传址,在我的上一篇文章当中有介绍),此时表格的单元格个数是一样的,此时,该时候的函数也结束,\$line和\$row的值将会跳到上回的9,继续执行这时候的函数,步骤将综上所述,依次循环进行,就得到了最终的结果。