0
我们可以说当$number <2
它不再调用factirial()
函数吗?或者它调用阶乘()函数,但它始终将阶乘设置为阶乘(1)。如果是这样,我认为递归使用更多的内存。我对么?如何返回递归工作?
<?php function factorial($number){
if ($number < 2) {
return 1;
} else {
return ($number * factorial($number-1));
}
}
echo factorial(5);
?>
这是我猜的功能
3*factorial(2)
2*factorial(1)
1*factorial(1)
1*factorial(1)
如果'$ number' <2,函数返回,而不是再次调用。只有'$ number'> 2时才会输入递归状态。 – BenM 2013-02-10 09:58:29
为什么它总是回退1,因为对于任何数字来说它都是'$ number <2' – newday 2013-02-10 10:02:13
@BenM当'$ number> = 2'(小错字) – Supericy 2013-02-10 10:48:10