输入值0 =空?

时间:2013-03-22 13:20:01

标签: php html forms input null

我有一个您注册狗的页面,我希望所有这些字段都是必需的:

$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?

3 个答案:

答案 0 :(得分:2)

来自the manual

以下内容被认为是空的:

"" (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) {

答案 1 :(得分:0)

PHP将这些视为空:

null
0
""
"0"
false

所以你有两个选择。附加内容,例如值a0或使用isset

答案 2 :(得分:0)

检查$value === null

if ($value === null && in_array($key, $required_fields) === true) {