“未定义索引”错误抱怨foreach迭代数组

时间:2017-03-20 09:10:57

标签: php foreach

我正在尝试编写一个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期望在这里定义变量值?

1 个答案:

答案 0 :(得分:1)

如果您的$_POST[$val]不存在,那么就会抛出该错误。

如果您将if ( $_POST[ $val ] !== "" ) {替换为if ( empty($_POST[ $val ]) ) {,它会检查变量是否已设置且不为空,那么您就不应再出现该错误。