84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
有一个这样的递归函数
function abc($num) {
if($num==1) {
return 1;
} else {
return $num*abc($num-1);
}
echo abc(5); //结果为 120;
递归的代码流程具体是怎么走的啊?
关于PHP中的递归的问题?-PHP中文网问答-关于PHP中的递归的问题?-PHP中文网问答
围观一下哦,学习一下。
首先说一下函数的运行,函数的运行是在内存中新开一个栈,然后在栈内运行的,而递归就是指在函数内部调用自己,当一个函数在函数内部调用自己,它会立即开辟一个栈,然后运行函数,当然它要有一个递归点和递归出口,否则函数会无论调用造成死循环,递归点为在什么时候需要调用自己,递归出口为在什么时候不再调用自己,用一个例子来解释一下递归,就是你的朋友张三向你借钱,你又刚好不够,你又向你的朋友李四借钱,你的朋友李四钱又不够,李四又向他的朋友王五借钱,王五的钱够了,把钱交给李四,李四把钱交给你,你再把钱交给张三,这个过程是连续的,只有最后一个把钱凑够了才能往回走。递归大概就是这样,递归是以空间换时间的,所以递归是非常耗内存的。
关于PHP中的递归的问题?-PHP中文网问答-关于PHP中的递归的问题?-PHP中文网问答
围观一下哦,学习一下。
首先说一下函数的运行,函数的运行是在内存中新开一个栈,然后在栈内运行的,而递归就是指在函数内部调用自己,当一个函数在函数内部调用自己,它会立即开辟一个栈,然后运行函数,当然它要有一个递归点和递归出口,否则函数会无论调用造成死循环,递归点为在什么时候需要调用自己,递归出口为在什么时候不再调用自己,用一个例子来解释一下递归,就是你的朋友张三向你借钱,你又刚好不够,你又向你的朋友李四借钱,你的朋友李四钱又不够,李四又向他的朋友王五借钱,王五的钱够了,把钱交给李四,李四把钱交给你,你再把钱交给张三,这个过程是连续的,只有最后一个把钱凑够了才能往回走。递归大概就是这样,递归是以空间换时间的,所以递归是非常耗内存的。