所以我有一个表格,其中一个条目是:
<input name="curr_loc" type="text" placeholder="Default" >
并且在提交表单而不在此特定输入条目中输入任何内容时,不知何故$_POST['curr_loc']
不是NULL
并且包含一些
isset($_POST['curr_loc'])
被发现的不可见值TRUE
。我试着把它打印出来,它是TRUE
. 为什么会这样??(其他所有领域都运行良好)。
所以我有一个表格,其中一个条目是:
<input name="curr_loc" type="text" placeholder="Default" >
并且在提交表单而不在此特定输入条目中输入任何内容时,不知何故$_POST['curr_loc']
不是NULL
并且包含一些
isset($_POST['curr_loc'])
被发现的不可见值TRUE
。我试着把它打印出来,它是TRUE
. 为什么会这样??(其他所有领域都运行良好)。
我相信你可能误解了NULL 和isset()之间的区别
在给定的形式中,如下所示:
<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
表明该值0
是length。
另一方面, NULL代表一个变量,其值不存在。或者一个没有值的变量。
如果我没记错的话,提交表单中的所有空文本框都将具有值“”(空字符串)。isset 返回 true 的原因是因为变量确实存在,它只是一个空字符串值。
如果您想检查表单中设置的变量,您应该使用if ($_POST['curr_loc'] != "")
.