空($ _ POST)=== FALSE不能正常工作

时间:2015-09-25 15:51:54

标签: php if-statement conditional-statements is-empty

我正在测试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>

即使输入为空,也会执行回声。

为什么?

2 个答案:

答案 0 :(得分:4)

这是因为$_POST收到form内有input值的POST请求后,永远不会为空。

如果你是var_dump,你会看到:

textarray(2) { ["text"]=> string(0) "" ["submit"]=> string(12) "Submit Query" } 

即使您的submit input已发送(因为它是form的一部分)。即使没有收到任何内容,$_POST也会返回一个空集数组,因此isset都不是检查POST失败或成功的好选择。

您需要评估特定字段,例如$_POST['text'],以取代空白。

答案 1 :(得分:1)

if(isset $_POST["text"] && $_POST["text"] !=null)

另外,尝试使用==而不是=== ==将转换$ _POST的值,所以如果它是NULL,它将被评估为false而不是