0

我需要验证一个表单,因此我正在编写一个执行此操作的 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;
    }
}
4

3 回答 3

3
  1. 即使字段为空,也会以""(空字符串)作为其内容提交。因此,array_key_exists将返回true
  2. if not empty return false是你试图做的相反的逻辑。
  3. 将您的布​​尔返回缩写为return array_key_exists($field, $_POST);应该被认为是更明智的,至少更简洁。
于 2012-04-23T08:51:06.213 回答
2
private function hasContent($field) {
    if (!empty($_POST[$field])) {
        return true;
    } else {
        return false;
    }
}

我认为你应该做一个小的改变。你还应该检查现有的数组是否有值或者它是否为空。

于 2012-04-23T08:51:33.273 回答
2

我想你可以试试这样的

private function isSubmitted($field) {
    return isset($_POST[$field]);
}

private function hasContent($field) {
    return !empty($_POST[$field]);
}
于 2012-04-23T09:00:56.703 回答