php判断数据是否为空,数值为0则不是空

在网站开发中,数据的判断可以说是必不可少的一个操作。那么在php项目的开发中,如果实现对数据的判断呢?

如:给定的数据中,判断值是否为空?

看到这个结果想必多数人会马上想到php的empty() 函数,但想必它也有着可以说是缺陷的部分。

当你的数据为0时,empty()反馈结果为true,即该值为空。由此可以得出当你的值为空或0时反馈的数据,都是true。如此在一些特殊的场景中,可以知道该结果并不是我们需要的。

这个时候就需要我们去自定义一个方法来检测值是否为空。代码如下:

/**
* 判断数据是否为空
* @param null $var 要判断的值
* @param bool $zeroIsEmpty 0是否也判断为空:true-判断为空(默认),false-判断不为空
* @return bool
*/
function is_empty($var = null, $zeroIsEmpty = false)
{
// 判断数据类型
switch ( gettype($var) ) {
case 'integer':
return $zeroIsEmpty
? (0 == $var ? true : false) // ‘0’认为是空
: (0 != $var && !$var ? true : false); // ‘0’不认为是空
break;
case 'string':
return (0 == strlen($var)) ? true : false;
break;
case 'array':
return (0 == count($var)) ? true : false;
break;
case 'boolean':
return $var ? false : true;
break;
default:
return true;
break;
}
}

如果是thinkphp框架,建议可以把方法放在common.php公共方法内,作为公共方法全局进行调用。

六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!