这是我正在使用的 PHP:
低于数据库中的值:
$quote = 49;
$add_amp = 0;
$con_array = "3,2,1";
function calcAddAmp($mul)
{
$add_amp = $add_amp + $mul*($quote);
}
$con_array = explode(",", $con);
for($i = 0; $i < count($con_array); $i++) {
switch ($fun) {
case 1:
calcAddAmp(.01);
break;
case 2:
calcAddAmp(.05);
break;
case 3:
calcAddAmp(.02);
break;
case 4:
calcAddAmp(.09);
break;
}
}
$quote = $quote + $add_amp;
问题出现在这里:
echo $add_amp;
$add_amp 返回 0,这使得 $quote 的值与之前相同,即 49。
echo $quote;
我确定我只是错误地编写了这个函数,但我找不到哪里出错了。
最佳答案
变量有函数作用域。在函数内设置 $add_amp
不会自动修改函数外的同名变量。如果您不返回
函数中的值,那将毫无意义。不过,我会将整个不必要的 switch
/function
简化为:
$multipliers = array(1 => .01, 2 => .05, 3 => .02, 4 => .09);
foreach ($con_array as $con) {
$add_amp += $multipliers[$con] * $quote;
}
关于PHP函数返回0,不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528013/