空($ _ POST ['var'])当输入值为'0'时返回true

时间:2012-10-24 02:02:26

标签: php html post input

  

可能重复:
  php: ‘0’ as a string with empty()

我有一个像这样的表格的输入

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

提交表单后,输入将通过POST发送到PHP文件。 在PHP文件中,它通过检查

检查输入是否已填写
empty($_POST['var'])

当我在文本框中输入'0'(零)并提交表单时,PHP代码返回'1'表示空($ _ POST ['var']),即使我已经尝试过print_r($ _ POST)和' var'显然具有值'0'。

这应该发生吗?我是否还需要为此例外检查== 0?谢谢。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

像这样使用:

function isEmpty($key) {
  return isset($_POST[$key]) && trim($_POST[$key]) === '';
}

答案 2 :(得分:0)

如果要检查的变量未定义,0,空字符串'',false,空数组或null,则

empty()返回true。所以你看到的结果是100%正确的。

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