0

所以我有一个表格,其中一个条目是:

<input name="curr_loc" type="text" placeholder="Default" >

并且在提交表单而不在此特定输入条目中输入任何内容时,不知何故$_POST['curr_loc']不是NULL并且包含一些 isset($_POST['curr_loc'])被发现的不可见值TRUE。我试着把它打印出来,它是TRUE. 为什么会这样??(其他所有领域都运行良好)。

4

2 回答 2

0

我相信你可能误解了NULLisset()之间的区别

在给定的形式中,如下所示:

<form method='POST'>
<input name="curr_loc" type="text" placeholder="Default" />
<input type='submit' />
</form>

<?php
    var_dump(@$_POST['curr_loc']);

当您提交帖子时,它会给您

string '' (length=0)

这基本上意味着提交了一个表单,并且由于所有表单提交都被解释为 astring但是,在这种情况下,0表明该值0length

另一方面, NULL代表一个变量,其值不存在。或者一个没有值的变量。

于 2013-07-09T23:19:13.100 回答
0

如果我没记错的话,提交表单中的所有空文本框都将具有值“”(空字符串)。isset 返回 true 的原因是因为变量确实存在,它只是一个空字符串值。

如果您想检查表单中设置的变量,您应该使用if ($_POST['curr_loc'] != "").

于 2013-07-09T23:19:54.460 回答