PHP函数返回0,不知道为什么

标签 php mysql arrays function

这是我正在使用的 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/

相关文章:

php - Internet Explorer 无法从 PHP/jQuery 刷新

mysql - 匹配两个不同表中的两个不同列

Java:用一个字符减去一个字符是什么意思?

javascript - 当网址不为空时歌曲无法播放

php - 将产品元移动到附加信息选项卡

php - 如何使用 php 从 dhtmlx 调度程序保存/更新事件

php - Websql 数据库将数据插入一个表而不是另一个表?

c++ - 在 C++ 中使用另一个变量来限制数组索引

c++ - 无法解决将二维数组传递给函数的外部问题

php - 如何用随机集替换字符串中的一组字符?