2013-02-10 55 views
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) 
+1

如果'$ number' <2,函数返回,而不是再次调用。只有'$ number'> 2时才会输入递归状态。 – BenM 2013-02-10 09:58:29

+0

为什么它总是回退1,因为对于任何数字来说它都是'$ number <2' – newday 2013-02-10 10:02:13

+0

@BenM当'$ number> = 2'(小错字) – Supericy 2013-02-10 10:48:10

回答

1

,我们可以说,在$数量< 2就不会再次调用factirial()函数?