永发信息网

php递归函数?????

答案:4  悬赏:50  手机版
解决时间 2021-03-23 08:18
function demo($num){
echo $num."
";

if($num>0)
demo($num-1);
else
echo "--------------------
";

echo $num."
";
}

demo(10);

我弄不明白为什么“ echo $num."
";”在上面的程序执行完后会再输出0 1 2 3 4 5 6 7 8 9 10,,其原理在哪里?????(上网看了一下相似的解答,但还是不明白,所以请各位别去“借鉴”。)谢谢。
最佳答案
很简单,每个demo函数不考虑中间的自身递归,都输出同样的2个数$num.,这两个数其实就是首尾对称的的两个数,
全部回答
$hg-1 没有改变$hg的值。而$hg--或者--$hg都改变了$hg的值。 首先分析 $hg--; 这是先用$hg再减1。也就是说每次都用的是 gogo(3).形成了死循环。 然后分析 --$hg; 这是先减1再用。 第1次:gogo(3) = 2*(gogo(2)); // 第2次:gogo(2) = 1*(gogo(1)); 第3次:gogo(1) = 0*(gogo(0)) = 0*1 = 0;
在PHP中,递归是通过栈来实现的,栈是后进先出的,所以最后一次递归调用最先输出
执行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." ";返回 $num=1时的echo $num=1." ";.... $num=10时echo $num=10." "; 返回主程序,你说的原因不就是在函数一开始就有一个输出了吗?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么时候天气会变热
小华从商场买了一盒伊利牌纯牛奶,并用商场的
离骚诗句中表面自己虽遭受压迫,但不改追求理
wps 顺序粘贴照片
表达美丽黄昏的句子,课外积累的古诗词中有哪
魅蓝为什么炉石传说下了,不能安装
小麦价格多少钱一斤
“震荡”与“振荡”有什么区别
电脑主板coms电池没电了,不换有什么损害?
毕业时没有签约,报到证开到了保定市教育局毕
骑马与砍杀 死亡视角怎么退出,就是战场延续
王府茶楼朝阳公园店地址在哪,我要去那里办事
在÷7=108…□中,□最大是________,这时是_
百度知道提问完以后,怎么不能补充了,总显示
贵港有什么公园可去,要多少钱
推荐资讯
芜湖以纯直营店在哪个位置?
实测剖面导线与岩层走西之间的夹角计算公式
单选题有关电磁场和电磁波的下列说法中正确的
财付通付款是什么意思,财付通是什么意思?怎
2020年夏季奥运会将在那个国家举办?
BURBERRY香水的批号怎么看
实施农村中小学远程教育工程使农村中小学教学
客厅的窗帘纱帘禁忌有哪些
求生之路2的造物插件用不了
冬夏是空调机的眼睛是电视机的双手是你电脑的
文学类阅读《喀什是梦》
4800.30元的大写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?