我正在尝试编写一个func来替换大量重复代码:
$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期望在这里定义变量值?
答案 0 :(得分:1)
如果您的$_POST[$val]
不存在,那么就会抛出该错误。
如果您将if ( $_POST[ $val ] !== "" ) {
替换为if ( empty($_POST[ $val ]) ) {
,它会检查变量是否已设置且不为空,那么您就不应再出现该错误。