PHP递归函数问题

<?phpfunctionfun($n){if($n>2){fun(--$n);//为什么这里加fun()和把fun(--$n)写成fun($n--)得出来的结果为什么是... <?php
function fun($n){
if($n>2){
fun(- -$n); // 为什么这里加fun() 和把fun(- -$n)写成fun($n- -)得出来的结果为什么是出错
echo '$n:'.$n."<br>";
}
fun(4);
?>
展开
 我来答
0928524035
2013-06-21 · TA获得超过106个赞
知道答主
回答量:115
采纳率:0%
帮助的人:61.7万
展开全部
乖乖,你没弄明白什么是递归哦!在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。你的出口在那里呢?同样$n--和--$n的概念不同,表达的意思也不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果果美屡
2013-06-21
知道答主
回答量:30
采纳率:0%
帮助的人:6.7万
展开全部
--$n 是 $n-1=3 第一次传给fun的值是 3,$n--,第一次传的是4,以后都是4,所以死循环了。
追问
不是说$n--到了下一条代码的时候 它会自动增加1么
追答
可是你是传递的值啊。你一直在传值4呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyl926426
2013-06-21 · 超过27用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:70.7万
展开全部
fun($n--) 你写成这个以后就变成了一个死循环。
追问
为什么会这样呢? 能不能把构图写出来。让我想一想、谢谢了
追答
什么意思,我不太明白,你这个出错是因为少写了一个反大括号,而且 --$n  而不是- - $n ,中间不能有空格,要不不能自减
--$n 改成 $n-- 会变成死循环,所以会报错,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq594836605
2013-06-21
知道答主
回答量:43
采纳率:0%
帮助的人:9.2万
展开全部
你代码有问题啊。差一个大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式