请各位大侠们帮我解一下下面这个php程序

2025-02-23 15:00:12
推荐回答(5个)
回答1:

我先说一下$sum=$sum+1在$sum没有进行初始化时的运行过程吧

①先执行$sum+1

②再$sum=上面的结果

你这段代码一开始就没有给$sum初始化,也就是说执行①的时候没有找到$sum这个变量

这段代码我建议就是变量初始化,怎么改都不如初始化方便,安全,许多编程员都是以运行为目标,能跑起来就行了,没有一点注意安全性,变量不初始化可能导致变量覆盖,修改的代码如下

function f($a){
 if($a>1){
  $sum=pow(2,($a-1))+f($a-1);
 
 }else{
    $sum=1;
    }
    return $sum;

}
$sum=0;
$b=f(30);
echo $b;
?>

回答2:

这个是递归算法
$sum = $sum + 1;提示错误是因为 $sum 没有初始化

回答3:

任何数的0次幂都为1,sum=1的情况就是a<=0

回答4:

没有错啊。。如果真的错了,建议你把错误信息贴出来

回答5:

确定会报错???????