我有几个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];
答案 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;