【数组篇】数组指定下标内容获取和数组指定下标检测是否存在 快捷函数 可用于thinkphp框架严格模式

沉梦小哥哥
预计阅读时长 14 分钟
位置: 首页 php笔记 正文

php现在比较成熟的框架有好几个,但是都是用的严格模式,这会导致在获取不存在的数组成员时就会报错!!

诸如现在thinkphp的就会,为了解决这个问题,封装了几个函数

if (!function_exists('array_get')) {
    /**
     * 快捷获取数组指定键的成员 可避免php框架的严格模式下报错
     * 如 $arr = ['name'=>'测试','data'=> ['a'=>'555','b'=>'6565']]; 可以 array_get('data.b', $arr);
     * @param  string|number $key     key 支持无限级获取
     * @param  array         $array   数组
     * @param  string        $default 默认值
     */
    function array_get($key = null, $array = [], $default = null)
    {
        if (is_array($array)) {
            if (is_null($key)) {
                $key = 0;
            }
            if ($pos = strpos($key, '.')) {
                $key2   = mb_substr($key, 0, $pos);
                $array2 = array_has($key2, $array) ? $array[$key2] : $default;
                if (is_array($array2)) {
                    return array_get(mb_substr($key, $pos + 1), $array2);
                }
                return $default;
            }
            return array_has($key, $array) ? $array[$key] : $default;
        }
        return $default;
    }
}

if (!function_exists('array_has')) {
    /**
     * 快捷检测数组指定键是否存在
     * @param  string $key   key
     * @return [type]        数组
     */
    function array_has($key = null, $array = [])
    {
        if (is_array($array) && !is_null($key)) {
            return array_key_exists($key, $array);
        }
        return fasle;
    }
}


-- 展开阅读全文 --
头像
宝塔面板Nginx设置所有文件或某文件允许跨域请求
« 上一篇 2021-12-22
沉梦Free惠易付聚合系统更新发布帖
下一篇 » 2022-03-09
取消
微信二维码
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]