這是因爲循環槽全部索引的數組可以定義爲簡單:
$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']);
但我真實我不推薦這個。
編輯: 這裏有一個更可能的解決方案。使用指針A「神奇」的功能:
function null_if_not_defined(&$variable) {
return isset($variable) ? $variable : NULL;
}
// Usage:
echo htmlspecialchars(null_if_not_defined($_POST['any_index']));
+1,它被寫入應用程序的方式,它可能更像是$ indexes_that_MUST_be_defined_but_can_be_empty;) – Anigel 2013-05-01 10:52:38
我喜歡你的建議;) – core1024 2013-05-01 11:01:25
Core1024這是極好的,不要認爲這是可能的,雖然有辦法只是說任何未定義的索引都是空的,而不是構建數組(名字,姓氏等)。有點像數組(*) – 2013-05-01 12:51:01