empty($_POST) === FALSE 不能正常工作
empty($_POST) === FALSE doesn't work as it should
我正在测试 php 中的空函数,但它不起作用,因为无论条件是假还是真,if 语句都可以访问。
<?php
if(empty($_POST) === false){
echo 'text';
}
?>
<form action="index.php" method="post">
Username:
<input type="text" name="text">
<input type="submit" name="submit">
</form>
即使输入为空也会执行回显。
为什么??
这是因为 $_POST
在收到来自 form
的 POST 请求后永远不会为空,其中包含 input
值。
如果你 var_dump
你的,你会看到:
textarray(2) { ["text"]=> string(0) "" ["submit"]=> string(12) "Submit Query" }
甚至您的 submit input
也已发送(因为它是 form
的一部分)。即使没有收到任何东西,$_POST
也会 return 一个空集合数组,因此 isset
都不是检查 POST 失败或成功的好选择。
您需要评估特定字段,例如 $_POST['text']
,而不是空值。
if(isset $_POST["text"] && $_POST["text"] !=null)
另外,尝试使用 == 而不是 ===
== 将转换 $_POST 的值,因此如果它是 NULL,它将被评估为 false 而不是
我正在测试 php 中的空函数,但它不起作用,因为无论条件是假还是真,if 语句都可以访问。
<?php
if(empty($_POST) === false){
echo 'text';
}
?>
<form action="index.php" method="post">
Username:
<input type="text" name="text">
<input type="submit" name="submit">
</form>
即使输入为空也会执行回显。
为什么??
这是因为 $_POST
在收到来自 form
的 POST 请求后永远不会为空,其中包含 input
值。
如果你 var_dump
你的,你会看到:
textarray(2) { ["text"]=> string(0) "" ["submit"]=> string(12) "Submit Query" }
甚至您的 submit input
也已发送(因为它是 form
的一部分)。即使没有收到任何东西,$_POST
也会 return 一个空集合数组,因此 isset
都不是检查 POST 失败或成功的好选择。
您需要评估特定字段,例如 $_POST['text']
,而不是空值。
if(isset $_POST["text"] && $_POST["text"] !=null)
另外,尝试使用 == 而不是 === == 将转换 $_POST 的值,因此如果它是 NULL,它将被评估为 false 而不是