我们在进行 WordPress 开发的时候,在获取数据的时候,需要对数据清理,这时候可能需要数组去掉 null 的值,空值等,保留下非 null 值和非空的值等操作,为了方便这些操作,我定了几个用于数据判断的回调函数。
判断数据非 null
判断数据非空,我们可以直接使用 isset
来判断,所以很多人和我一样,想着过滤掉数组中非空的字符也直接使用 isset 作为回调函数:
$data = array_filter($data, 'isset');
但是上面的函数直接会报:
代码语言:javascript复制array_filter() expects parameter 2 to be a valid callback, function 'isset' not found or invalid function name
这是因为 isset
是一个语言构造器而不是一个函数,所以只能使用 !is_null 来判断非 null 值,然后使用闭包的方式:
$data = array_filter($data, function($item){
return !is_null($item);
});
程序中有非常多的这样的数组中需要过滤掉 null 值的处理,每次都适用闭包函数的方式感觉有点不优雅,所以我定义了一个函数 is_exists
。
随便说一下这个函数名我想了很久,很早之前就想写这个函数作为回调函数使用了,但是一直没有好名字,然后看到 file_exists
,function_exists
和 method_exists
,突然来了灵感,于是兴奋的写了这个 is_exists
这个函数:
if(!function_exists('is_exists')){
function is_exists($var){
return isset($var);
}
}
然后就可以直接用于回调函数了:
代码语言:javascript复制$data = array_filter($data, 'is_exists');
判断字符串是否为空
在 PHP 里面空值是可以使用 empty
来判断的,但是有一点特别注意一下,这个函数会把字符串 '0'
也认为是空的,而很多时候我们并不希望,比如表单输入的时候,用户输入 0 了,其实已经输入了,并不是空,所以我同样也创建了一个函数 is_blank
。
哈哈,是不是这个名字也很好?blank 空白的意思,有0那就不是空白咯。