我需要验证一个表单,因此我正在编写一个PHP类来实现这一点。我需要检查是否已设置$_POST
变量,以确定是否显示错误消息。所以我已经实现了两个方法似乎没有按照我的预期工作,因为即使我将表单保留为空白,也会将其处理为数据已填入,我只是不明白。
private function isSubmitted($field) {
if (!array_key_exists($field, $_POST)) {
return false;
} else {
return true;
}
}
private function hasContent($field) {
if (!empty($_POST[$field])) {
return false;
} else {
return true;
}
}
答案 0 :(得分:3)
""
(空字符串)作为其内容提交。因此,array_key_exists
将返回true
。if not empty return false
与你想要做的事情相反。return array_key_exists($field, $_POST);
应该被认为是更健全,至少更简洁。答案 1 :(得分:2)
private function hasContent($field) {
if (!empty($_POST[$field])) {
return true;
} else {
return false;
}
}
我认为你应该做一个小改动。你还应该检查现有数组是否有值或是否为空。
答案 2 :(得分:2)
我认为你可以尝试这样的事情
private function isSubmitted($field) {
return isset($_POST[$field]);
}
private function hasContent($field) {
return !empty($_POST[$field]);
}