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 代码读取值不为空?

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

所以你有两个选择。在其上附加一些东西,例如 valuea0或 use isset

于 2013-03-22T13:21:14.207 回答