首页 >PHP讨论组 >关于PHP中的递归的问题?

关于PHP中的递归的问题?关于PHP中的递归的问题?

有一个这样的递归函数

function abc($num) { 

if($num==1) {

return 1;

} else {

  return $num*abc($num-1);

}

  }

  echo abc(5);  //结果为 120;

 递归的代码流程具体是怎么走的啊?

 
2
 
+1
-1
 
分享
全部回复 (2)我来回答
    数据分析师
    2楼
    数据分析师 · 2个月前

    关于PHP中的递归的问题?-PHP中文网问答-关于PHP中的递归的问题?-PHP中文网问答

    围观一下哦,学习一下。

      赞+0添加回复

    阿神
    1楼
    阿神 · 11个月前

    首先说一下函数的运行,函数的运行是在内存中新开一个栈,然后在栈内运行的,而递归就是指在函数内部调用自己,当一个函数在函数内部调用自己,它会立即开辟一个栈,然后运行函数,当然它要有一个递归点和递归出口,否则函数会无论调用造成死循环,递归点为在什么时候需要调用自己,递归出口为在什么时候不再调用自己,用一个例子来解释一下递归,就是你的朋友张三向你借钱,你又刚好不够,你又向你的朋友李四借钱,你的朋友李四钱又不够,李四又向他的朋友王五借钱,王五的钱够了,把钱交给李四,李四把钱交给你,你再把钱交给张三,这个过程是连续的,只有最后一个把钱凑够了才能往回走。递归大概就是这样,递归是以空间换时间的,所以递归是非常耗内存的。

      赞+0添加回复

    首页上一页1下一页尾页