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,,其原理在哪里?????(上网看了一下相似的解答,但还是不明白,所以请各位别去“借鉴”。)谢谢。
展开
 我来答
匿名用户
2014-02-28
展开全部
在PHP中,递归是通过栈来实现的,栈是后进先出的,所以最后一次递归调用最先输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-28
展开全部
这个很难说得清楚,靠自己去理清思路的。
其实就是

第一个参数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>"; 返回主程序,你说的原因不就是在函数一开始就有一个输出了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-28
展开全部
很简单,每个demo函数不考虑中间的自身递归,都输出同样的2个数$num.,这两个数其实就是首尾对称的的两个数,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式