在php中创建递归计算阶乘的函数时出现致命错误


Fatal error in creating function that calculates recursively the factorial in php?

这是我作业中的问题。

使用PHP,实现一个函数,该函数递归地计算低于100的给定数字的阶乘。如果传递的值超过100 ,该函数应该返回0

这是我的答案

<?php
function factorial($number)
{ 
    if ($number >= 100) {
        return 0;
    }
    return $number * factorial($number - 1);      
}
print factorial(11); 
?>

但是问题是,当我运行代码时,我有致命错误:

致命错误:第20行C:''examplep''htdocs''PhpProject1''index.php中允许的内存大小134217728字节已用完(试图分配65488字节)

这是20号线return $number * factorial($number - 1);

我认为我的问题是无限循环:(

我不能结束这个循环

试试这个:

function factorial($number)
{ 
   if ($number >= 100) {
       return 0;
   }
   if($number<= 1){
       return 1;
   }

   return $number * factorial($number - 1);      

}

试试这种方法。

<?
function factorial($number)
{ 
if ($number >= 100) {
   return 0;
 }
 elseif($number<= 1){
   return 1; 
 }
 else{/* do nothing */  return $number * factorial($number - 1);  }
 }

 print factorial(11); 

 ?>