PHP empty函数判断0返回真还是假?

时间:2023-03-09 04:04:26
PHP empty函数判断0返回真还是假?

最近项目中,遇到一个字段是 “是否启用”值为0,1 在查询时没想就写了

if ( isset($args_array['useFlg']) && !empty($args_array['useFlg']) ) {
.....
}

于是查不到为0的时候,想了一下,应该是0是被认为是空.应该这样:

if ( isset($args_array['useFlg']) && in_array($args_array['useFlg'] , array(0,1)) ) {
.....
}

看了下php手册,备忘:

如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""0"0"NULLFALSEarray()var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

<?php
$var = 0; // 结果为 true,因为 $var 为空
if (empty($var)) {
echo '$var is either 0 or not set at all';
} // 结果为 false,因为 $var 已设置
if (!isset($var)) {
echo '$var is not set at all';
}
?>
The following things are considered to be empty:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)

手册参见:http://php.net/manual/zh/function.empty.php