0

我有一个后变量,必须检查它是否为空。我像这样查看变量的值:

print_r($_POST['arrayId']);

并打印预期值。但是,如果我这样做:

if(!empty($_POST['arrayId'])) {
    // some stuff
} else {
    echo "f";
}

f 被打印,而应该执行的代码不是。这怎么可能?

4

3 回答 3

3

相反,它会检查密钥是否存在于 post 数组中,而不管值如何。也适用于NULL,false0任何其他被视为“空”值的值...

if(array_key_exists('arrayId', $_POST)) {
    // some stuff
} else {
    echo "f";
}
于 2012-10-03T09:27:22.693 回答
1

empty()如果值为 ,则返回真0

更改为:

if(isset($_POST['arrayId']) && strlen($_POST['arrayId'])) {
    // some stuff
} else {
    echo "f";
}
于 2012-10-03T09:26:25.830 回答
-1

验证输入 '$var' 到 empty() 函数

空($var)

如果 var 存在并且具有非空、非零值,则返回 FALSE。否则返回 TRUE。

以下内容被认为是空的:

"" (空字符串) 0 (0 作为整数) 0.0 (0 作为浮点数) "0" (0 作为字符串) NULL FALSE array() (空数组) $var; (声明的变量,但没有值)

http://php.net/manual/en/function.empty.php

于 2012-10-03T09:30:47.600 回答