5

可能重复:
php: '0' 作为带有 empty() 的字符串

我有一个像这样的形式的输入

<input name='var' type='number'>

提交表单时,输入通过 POST 发送到 PHP 文件。在 PHP 文件上,它通过检查来检查输入是否已填写

empty($_POST['var'])

当我在文本框中输入“0”(零)并提交表单时,PHP 代码为空($_POST['var'])返回“1”,即使我已经清楚地尝试了 print_r($_POST) 和 'var'值为“0”。

这应该发生吗?我是否还需要检查 == 0 这个异常?谢谢。

4

3 回答 3

3

要检查该字段是否填写,请使用isset($_POST['var'])代替empty($_POST['var'])

于 2012-10-24T02:08:14.287 回答
0

您不能empty仅用于检查它是否为空字符串或字符串仅包含空白字符。

像这样使用:

function isEmpty($key) {
  return isset($_POST[$key]) && trim($_POST[$key]) === '';
}
于 2012-10-24T02:07:17.003 回答
0

如果要检查的变量未定义,则 empty() 返回 true、0、空字符串 ''、false、空数组或 null。所以你看到的结果是 100% 正确的。

如果 0 是合法值,请使用 is_set()。

于 2012-10-24T02:31:05.530 回答