将字符串传递给$ _POST

时间:2012-08-21 22:03:56

标签: php string post

我有几个radiobutton数组。 它们被命名为awardLevel0 [],awardLevel1 [],awardLevel2 []等,由用户动态生成。 我想知道这个函数是否能够得到它们的总和值。

function awardCheck () {
    $exist = true;
    $num = 0;
    $endsum = 0;
    while ($exist)
    {
        $names = "awardLevel" . $num;
        $awardLev = $_POST[$names];
        if (empty($awardLev)) {
            $exist = false;
            return $endsum;
        }
        else 
            $endsum = $endsum + $awardLev;
        $num++;
    }
    return $endsum;
}

当我运行上面的代码时,它会在$ endsum = $ endsum + $ awardLev中给出错误;说我正在使用不受支持的操作数类型。当我删除$ awardLev时,它会在没有错误的情况下运行。

是否可以将包含字符串的变量传递给$ _POST,如

$postname = "awardLevel2";
$awardLev = $_POST[$postname];

3 个答案:

答案 0 :(得分:3)

是的,你绝对可以这样做,但只需注意:

使用POST值中的[]语法,您将返回一个数组而不是字符串。您可以使用此功能,甚至可以array_sum _POST[awardLevel] awardLev值,如果您只是删除数字,但我不确定这是否适合您。

我错过了你的语法错误(下次立即发布任何错误)。

由于+是一个数组,因此您只能将$endsum += $awardLev[0] 与另一个数组一起使用,而不能使用整数。只需使用

awardLev

代替。或者如果您期望每$endsum += array_sum($awardLev); 个多个值:

{{1}}

答案 1 :(得分:1)

当你拥有大量已知组件并且想要使用post变量名称创建动态变量时,这是一个很有用的事实:

foreach ($_POST as $key => $value){
    $$key = $value;
}

例如,如果您有像

这样的项目
<textarea name="postText"></textarea>

您将拥有一个名为&#34; postText&#34;

的变量

答案 2 :(得分:0)

你试过这个吗???

$endsum = $endsum.$awardLev;