它就像循环遍历可能定义的所有索引的数组一样简单:
$indexes_that_MUST_be_defined_but_can_be_empty = array(
'FirstName',
* * *
'LastName'
);
foreach($indexes_that_MUST_be_defined_but_can_be_empty as $index) {
if( ! isset($_POST[$index])) {
$_POST[$index] = NULL;
}
}
甚至您可以像这样预设不同的默认值:
$indexes_that_MUST_be_defined_but_can_be_empty = array(
'FirstName' => NULL,
* * *
'LastName' => NULL
);
$_POST = array_merge($indexes_that_MUST_be_defined_but_can_be_empty, $_POST);
如果你真的只是想抑制警告,你可以使用@
如下:
echo htmlspecialchars(@$_POST['any_index']);
但我真的不推荐这个。
编辑:这是另一种可能的解决方案。一个使用指针的“神奇”函数:
function null_if_not_defined(&$variable) {
return isset($variable) ? $variable : NULL;
}
// Usage:
echo htmlspecialchars(null_if_not_defined($_POST['any_index']));