递归函数,递归只是一个名字,而递归函数的规定:函数体内调用函数自己。
这需要一定的思维理解深度,本章学习过程当中,如果你实在是有思维无法跟上的地方,可以跳过本章不用学习。等有了知识积累可以再看看!
我们来写一个简单的递归代码,让函数自己调用自己:
<?php $n = 2; function dg( $n ){ echo $n.'<br />'; $n = $n - 1; if($n > 0){ //在函数体内调用了dg自己哟 dg($n); }else{ echo '--------------'; } echo '我是最后一个哦!' . $n . '<br />'; } dg($n); ?>
我们来仔细推理一次:
第一次调用dg(),将数字$n = 2传到dg中,先显示出来了2
然后将$n - 1 $n的值为了1
接着判断$n 是否大于0,肯定是大于0的,所以调用递归自己,再把自己执行一次。
而第二次在执行自己dg()的时候,而最下面的 echo '我是最后一个哦!' . $n . '; 还没有执行到。等待执行完成后再来执行
$n此时等于1 ,所以显示出来1。
$n把自己减了一次,$n的结果为0
$n大于0肯定不成立的,所以显示了一条:"--------------"
而这个时候该执行:echo ''我是最后一个哦!' . $n . ';
第二次执行dg()执行完成。第一次dg()的代码还没执行完,将第4点中的余下代码执行完。
没有看懂的小伙伴把代码考下去在本地运行学习学习也可以。