我正在尝试编写一个简单的函数来为表单构造字段名称。如果在多选列表中选择了至少一个值但是如果没有选择任何值,则它会正常工作我得到一个未定义的索引错误。这就是我所拥有的:
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/>';
谢谢!
答案 0 :(得分:1)
您只需要保护自己免于阅读$_POST
中不存在的密钥:
$mcField = isset($_POST[$mcFieldName]) ? $_POST[$mcFieldName] : null;
答案 1 :(得分:1)
在尝试访问数组项之前,请确保使用isset()
:
if (isset($_POST[$mcFieldName])) {
$mcField = $_POST[$mcFieldName];
...
}