如果数组中没有元素,为什么count()
返回的值超过0?
if (count($_POST['tickboxes']) > 0) {
echo "found";
}
$ POST数组结构:
Array
(
[ID] => 53
[tickboxes] =>
[dropdowns] =>
)
我期待0或null。
答案 0 :(得分:9)
你正试图count
Docs不是数组的东西,而是字符串。
如文档所述,count
会为字符串返回1
,无论其长度如何。
您可以使用strlen
Docs函数,因为它会计算该字符串中ascii字符的数量:
if (strlen($_POST['tickboxes']) > 0) {
echo "found";
}
此外,您可以使用empty
Docs语言构造,它将检查它是空数组还是空字符串,或整数0或字符串'0' - 最后一个可能会导致您悲伤(取决于你正在做什么,即如果你的用户可以向你发送这样的输入)。
如果empty
可以作为您的选择,您也可以省略它:
if ($_POST['tickboxes']) {
echo "found";
}
如果您这样做,请不要忘记检查$_POST
数组中的密钥是否存在。如果您不确定,empty
将不会给您任何警告:
if (!empty($_POST['tickboxes'])) {
echo "found";
}
答案 1 :(得分:2)
那是因为你的变量不是数组。试试echo count('');
,当count(array())
为0时,您会看到它返回1。
答案 2 :(得分:0)
我认为@Ariel解决了它
如果您从html表单发送数据,则可以在firefox中使用tamperdata插件
https://addons.mozilla.org/en-US/firefox/addon/tamper-data/
这将有助于你:)