这里的内容是个人在日常学习过程中遇到的问题,以及对应的解决方法。(按照时间节点归纳)
1.Laravel框架中资源包predis引入需注意的一些问题
引入 predis 资源包之后,如果你的 php 已经打开了 redis 扩展,那么在 laravel 中使用 predis 扩展时可能会通过 use Redis;
的门脸类方式引入 Redis 类,但这时会与 redis 扩展冲突。解决的方法是直接使用完整的命名空间Illuminate\Support\Facades\Redis;
引入 redis 。
2.二维/多维数组的判空
工作中在使用 tp5 的Db方法查询出的结果集都是二维数组,当结果集为空使,框架会自动转成1维空数组,因此可以直接使用 empty 判断结果集是否为空。上星期在写报表接口时,遇到了多维数组的判空,特此做个记录。
二维数组
要判断二维数组是否为空,可以使用 array_filter() 将先空数组过滤,再使用 empty 判断即可!
$arr = [[],[],[],[]];
if(empty(array_filter($arr))) {
echo '空';
}else {
echo '非空';
}
需要注意的是 array_filter 函数在没有提供回调函数时,会删除 array 中所有等值为 FALSE 的条目
多维数组
要判断多维数组是否为空,就需要使用到 array_walk_recursive() 函数递归地对数组进行判断了。
$arr = [[[]],[[]],[[]]];
$is_empty = true;
array_walk_recursive($arr, function($value) use (&$is_empty) {
if($value) {
$is_empty = false;
}
});
var_dump($is_empty);exit;
通过在回调函数中改变是否为空的标志 $is _empty 即可完成多维数组的判空。