我有一个后变量,必须检查它是否为空。我像这样查看变量的值:
print_r($_POST['arrayId']);
并打印预期值。但是,如果我这样做:
if(!empty($_POST['arrayId'])) {
// some stuff
} else {
echo "f";
}
f 被打印,而应该执行的代码不是。这怎么可能?
我有一个后变量,必须检查它是否为空。我像这样查看变量的值:
print_r($_POST['arrayId']);
并打印预期值。但是,如果我这样做:
if(!empty($_POST['arrayId'])) {
// some stuff
} else {
echo "f";
}
f 被打印,而应该执行的代码不是。这怎么可能?
相反,它会检查密钥是否存在于 post 数组中,而不管值如何。也适用于NULL
,false
和0
任何其他被视为“空”值的值...
if(array_key_exists('arrayId', $_POST)) {
// some stuff
} else {
echo "f";
}
empty()
如果值为 ,则返回真0
。
更改为:
if(isset($_POST['arrayId']) && strlen($_POST['arrayId'])) {
// some stuff
} else {
echo "f";
}
验证输入 '$var' 到 empty() 函数
空($var)
如果 var 存在并且具有非空、非零值,则返回 FALSE。否则返回 TRUE。
以下内容被认为是空的:
"" (空字符串) 0 (0 作为整数) 0.0 (0 作为浮点数) "0" (0 作为字符串) NULL FALSE array() (空数组) $var; (声明的变量,但没有值)