Php 将字符串传递给$\u POST

Php 将字符串传递给$\u POST,php,string,post,Php,String,Post,我有几个单选按钮阵列。 它们被命名为awardLevel0[],awardLevel1[],awardLevel2[],等等,由用户动态生成。 我想知道这个函数是否可以得到它们的总和值 function awardCheck () { $exist = true; $num = 0; $endsum = 0; while ($exist) { $names = "awardLevel" . $num; $awardLev =

我有几个单选按钮阵列。 它们被命名为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时,它运行时没有该错误

是否可以将包含字符串的变量传递给$\u POST like

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

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

使用POST值中的[]语法,可以返回数组而不是字符串。你可以利用这个优势,如果你只是删除这个数字,甚至可以对[awardLevel]值进行数组求和,但我不确定这是否适用于你

我错过了你的语法错误,顺便说一句,下次我会立即发布任何错误

因为awardLev是一个数组,所以只能将+与另一个数组一起使用,而不能与整数一起使用。只用

$endsum += $awardLev[0]
相反。或者,如果您希望每个awardLev有多个值:


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

使用POST值中的[]语法,可以返回数组而不是字符串。你可以利用这个优势,如果你只是删除这个数字,甚至可以对[awardLevel]值进行数组求和,但我不确定这是否适用于你

我错过了你的语法错误,顺便说一句,下次我会立即发布任何错误

因为awardLev是一个数组,所以只能将+与另一个数组一起使用,而不能与整数一起使用。只用

$endsum += $awardLev[0]
相反。或者,如果您希望每个awardLev有多个值:


当您有许多已知组件,并且希望使用post变量的名称创建动态变量时,一个有用的事实是执行以下操作:

foreach ($_POST as $key => $value){
    $$key = $value;
}
例如,如果您有一个项目,如

<textarea name="postText"></textarea>

您将有一个名为postText的变量,这是一个有用的事实,当您有许多已知组件,并且希望使用post变量的名称创建动态变量时,可以执行以下操作:

foreach ($_POST as $key => $value){
    $$key = $value;
}
例如,如果您有一个项目,如

<textarea name="postText"></textarea>

您将有一个名为postText的变量。您尝试过这个吗

$endsum = $endsum.$awardLev;

你试过这个吗

$endsum = $endsum.$awardLev;

运行它时会发生什么?运行函数时会发生什么?它是否按照您的预期工作?是的$\u POST[$stringvariable]是完美的ok@Bryan当我运行函数时,它在“$endsum=$endsum+$awardLev;”处给我一个错误使用不支持的操作数类型运行时会发生什么?运行函数时会发生什么?它是否按照您的预期工作?是的$\u POST[$stringvariable]是完美的ok@Bryan当我运行函数时,它在“$endsum=$endsum+$awardLev;”处给我一个错误使用不支持的操作数类型,我用实际运行代码时发生的情况编辑了文章。谢谢,只添加数组的第一个元素就解决了问题:我用实际运行代码时发生的情况编辑了这篇文章。谢谢,只添加了数组的第一个元素就解决了这个问题:我建议不要这样做。它很聪明,但太聪明了。使用数组比使用变量中的变量要清楚得多。我建议不要这样做。它很聪明,但太聪明了。使用数组比使用变量中的变量更清晰。