php递归函数?????
functiondemo($num){echo$num."<br>";if($num>0)demo($num-1);elseecho"------------------...
function demo($num){
echo $num."<br>";
if($num>0)
demo($num-1);
else
echo "--------------------<br>";
echo $num."<br>";
}
demo(10);
我弄不明白为什么“ echo $num."<br>";”在上面的程序执行完后会再输出0 1 2 3 4 5 6 7 8 9 10,,其原理在哪里?????(上网看了一下相似的解答,但还是不明白,所以请各位别去“借鉴”。)谢谢。 展开
echo $num."<br>";
if($num>0)
demo($num-1);
else
echo "--------------------<br>";
echo $num."<br>";
}
demo(10);
我弄不明白为什么“ echo $num."<br>";”在上面的程序执行完后会再输出0 1 2 3 4 5 6 7 8 9 10,,其原理在哪里?????(上网看了一下相似的解答,但还是不明白,所以请各位别去“借鉴”。)谢谢。 展开
4个回答
2014-02-28
展开全部
在PHP中,递归是通过栈来实现的,栈是后进先出的,所以最后一次递归调用最先输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-28
展开全部
这个很难说得清楚,靠自己去理清思路的。
其实就是
第一个参数10传进去后,那函数还没有执行完,又要执行9,然后是8.... 到0的时候,
再把把前面没执行完的再执行, 0...8, 9, 10这样
其实就是
第一个参数10传进去后,那函数还没有执行完,又要执行9,然后是8.... 到0的时候,
再把把前面没执行完的再执行, 0...8, 9, 10这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-28
展开全部
执行demo($num);时不是还要将$num带入原函数中吗?
$num=10 echo $num=10-->$num=9带入
$num=9 echo $num=9-->$num=8带入....
$num=0 echo $num=0-->$num不大于0返回 $num=0 echo $num=0."<br>";返回 $num=1时的echo $num=1."<br>";....
$num=10时echo $num=10."<br>"; 返回主程序,你说的原因不就是在函数一开始就有一个输出了吗?
$num=10 echo $num=10-->$num=9带入
$num=9 echo $num=9-->$num=8带入....
$num=0 echo $num=0-->$num不大于0返回 $num=0 echo $num=0."<br>";返回 $num=1时的echo $num=1."<br>";....
$num=10时echo $num=10."<br>"; 返回主程序,你说的原因不就是在函数一开始就有一个输出了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-28
展开全部
很简单,每个demo函数不考虑中间的自身递归,都输出同样的2个数$num.,这两个数其实就是首尾对称的的两个数,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询