未定义索引错误的异常处理?

时间:2011-02-09 17:06:52

标签: php error-handling

保存应用的选项页面时会调用以下脚本。所有选项都存储在$ options中的数组中。

我收到调试错误“未定义的索引,id”在下面的注释行。我有什么想法可以修复脚本吗?

        foreach ($options as $value) 
        {
            if( isset( $value['id'] ) && isset( $_REQUEST[$value['id']] ) ) 
            {
                update_option( $value['id'], stripslashes($_REQUEST[$value['id']])  ); 
            }
            else
            {
                update_option( $value['id'], ""); //Error Here
            }
        }

1 个答案:

答案 0 :(得分:2)

您的if{}细分无法阻止else{}细分中的代码工作。

换句话说:

在if块中,您会问:" $ value [' id']是否存在?"

如果没有,您的代码将执行您的else块,然后尝试引用不存在的变量。

您需要先设置数组密钥才能更新它。

您的update_option函数应该只检查该变量是否存在,并设置它而不是更新它,如果不存在的话。