0

我正在尝试编写一个简单的函数来构造表单的字段名称。如果在多选列表中选择了至少一个值,则它工作正常,但如果未选择任何值,我会收到未定义的索引错误。这是我所拥有的:

function mcFieldName($mcFieldName){
$mcField = $_POST[$mcFieldName];
if( !is_array($mcField) ){
    if( !empty($mcField) ){
        return $mcField;
    }else{
        return 'n/a';
    }
}
if( is_array($mcField) ){
    $mcFieldArray = implode(',', $mcField);
    return $mcFieldArray;
}

}

$MultiSelect = mcFieldName('mcMultiSelect');
// test
echo $MultiSelect . '<br/>';

谢谢!

4

2 回答 2

1

您只需要保护自己不读取不存在于的密钥$_POST

$mcField = isset($_POST[$mcFieldName]) ? $_POST[$mcFieldName] : null; 
于 2012-01-09T02:21:32.450 回答
1

在您尝试访问数组项之前,请确保它存在于 using isset()

if (isset($_POST[$mcFieldName])) {
    $mcField = $_POST[$mcFieldName];
    ...
}
于 2012-01-09T02:21:32.903 回答