奇怪的PHP empty()错误

时间:2018-05-28 12:07:17

标签: php

我不想显示所有代码,但是我正在使用php验证所有数据,并且一切都正常工作,直到这个变量继续给我同样奇怪的响应:

$ABN = $_POST['ABN'];

我使用POST方法抓取变量,并使用

进行检查
if(empty($ABN)) {
     $msg .= '<br> ABN Needed';
     $proceed = false;
 }

所以,在你说显然POST没有给我任何数据之前,我用过:

var_dump($ABN);

而且它给了我在表单上输入的相同输入,所以显然这不是空的?

string(11) "-the-value-i-am-passing-in"

我检查了所有代码并确保$ ABN没有在其他地方设置为null,甚至移动代码,因此我的代码中的序列现在是一个接一个但是这个问题仍在发生。有谁知道为什么会发生这种情况?

    $ABN = $_POST['ABN'];
    var_dump($ABN);

    if(empty($ABN)) {
        $msg .= '<br> ABN Needed';
        $proceed = false;
    }

2 个答案:

答案 0 :(得分:1)

尝试在实际的帖子变量上使用isset(),然后在{。}}上使用is_null()

$ABN = isset($_POST['ABN']) ? $_POST['ABN'] : null;

if(is_null($ABN)) {
    $msg .= '<br> ABN Needed';
    $proceed = false;
}

答案 1 :(得分:0)

(代表问题作者发布解决方案)

我将if(empty()){}更改为if(!isset()){}。谢谢大卫的解决方案。