Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 输入值0=空?_Php_Html_Forms_Input_Null - Fatal编程技术网

Php 输入值0=空?

Php 输入值0=空?,php,html,forms,input,null,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 ma

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

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

php将这些值视为空:

null
0
""
"0"
false
所以你有两个选择。向其附加一些内容,如value
a0
或使用
isset

来自:

以下内容被认为是空的:

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

检查
$value==null

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

是的,这是我希望不会发生的事情,但我想我必须接受,因为所有的消息来源似乎都指向这一点。谢谢你的回答,我想我会解决这个问题,只要不要求年龄,如果为空,就把它设为0(小狗)。你试过测试
NULL