1

私はあなたがあなたの犬を登録するページを持っています、そして私はこれらすべてのフィールドが必須であることを望みます:

$required_fields = array('name', 'age', 'gender', 'breed', 'size');
foreach ($_POST as $key => $value) {
    if (empty($value) && in_array($key, $required_fields) === true) {
        $errors[] = 'All fields marked with * are required.';
        break 1;
    }
}

問題は、誰かが0を入力した場合(犬が子犬の場合はそうするように指示します)、送信はそのフィールドを空として読み取るように見えることです(このエラーが発生します)。整数などを削除するチェックをさらに進めていますが、ユーザーにとって最善の解決策であり、最も簡単な形式は、値として0を入力できるようにすることです。とにかく、PHPコードに値をnullではないものとして読み取らせる方法はありますか?

4

3 に答える 3

4

マニュアルから:

次のものは空であると見なされます。

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

あなたが考えるかもしれない修正はこのような何かをすることでしょう:

if ((empty($value) && $value != 0) && in_array($key, $required_fields) === true) {
于 2013-03-22T13:21:34.957 に答える
0

確認してください$value === null

if ($value === null && in_array($key, $required_fields) === true) {
于 2013-03-22T13:32:38.413 に答える
0

PHPはこれらを空として扱います。

null
0
""
"0"
false

したがって、2つの選択肢があります。値などの何かを追加するa0か、を使用しますisset

于 2013-03-22T13:21:14.207 に答える