0

フォームを検証する必要があるため、それを行う php クラスを作成しています。$_POSTエラー メッセージを表示するかどうかを判断するには、変数が設定されているかどうかを確認する必要があります。そのため、フォームを空白のままにしても、データが入力されているかのように処理され、理解できないため、期待どおりに機能しないように見える2つのメソッドを実装しました。

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 isSubmitted($field) {
    return isset($_POST[$field]);
}

private function hasContent($field) {
    return !empty($_POST[$field]);
}
于 2012-04-23T09:00:56.703 に答える
2
private function hasContent($field) {
    if (!empty($_POST[$field])) {
        return true;
    } else {
        return false;
    }
}

マイナーな変更を行う必要があると思います。既存の配列に値があるかどうか、または空かどうかも確認する必要があります。

于 2012-04-23T08:51:33.273 に答える