我正在尝试编写一个函数来替换一大段重复的代码:
在循环的每一次迭代中,为什么PHP要求变量值在此处被定义?
$inputVals = array( $siteId, $siteName, $numHspaBbu, $numLteBbu, $extAlarmsTerminated, $cellLowPower );
function updateVarVals( $inputVals ) { // assign values to $vars after Update button clicked
foreach( $inputVals as $val ) {
if ( $_POST[ $val ] !== "" ) { // if $_POST value is not empty then assign to $var and corresponding $_SESSION value
$val = $_SESSION[ $val ] = $_POST[ $val ];
} else { // re-assign $_SESSION value to $var
$val = $_SESSION[ $val ];
} // close IF
} // close FOREACH
} // close FUNC
updateVarVals( $inputVals );
但是无论我如何引用$val
,我都会得到以下结果:
Notice: Undefined index: <$val value> in C:\xampp\htdocs\database on line 145.
在循环的每一次迭代中,为什么PHP要求变量值在此处被定义?
print_r($inputVals);
证明了这一点。然后,如果用户更改其中一个输入并单击更新,JS代码会检测到on(change)
并通过ajax.php文件发送更改,我现在正在尝试使用它来相应地更新php变量:如果(empty($_POST[$val]) {则重新分配$_SESSION[$val]到$var,否则将更改的输入值分配给$var和$_SESSION[$val]。更新事件后,print_r($inputVals);
再次证明已相应地分配更改的值。 - commnux