zoukankan      html  css  js  c++  java
  • [PHP] laravel data_get函数以及?? ?: 测试用例

    当需要从多维数组中获取值,并且进行判空,赋值默认值的时候

    可以使用下面的测试用例

            $arr=[
                "name"=>"陶士涵",
                "title"=>[
                    "sub"=>"测试"
                ],
                "test"=>null,
                "desc"=>"",
                "num"=>0,
            ];
    
            $name=data_get($arr,"name","a");
            $subTitle=data_get($arr,"title.sub","a");
            $mainTitle=data_get($arr,"title.main","a");//如果没有这个key的情况下,默认值起作用,返回string(1) "a"
            $test=data_get($arr,"test","a");//如果是null的情况下,默认值不起作用,返回null
            $test2=data_get($arr,"test","a") ?? "a";//如果是null的情况下,??可以起作用,返回string(1) "a"
            $desc=data_get($arr,"desc","a") ?: "a";//如果是""的情况下,?:可以起作用,返回string(1) "a"
            $num=data_get($arr,"num","a") ?: 100;//如果是0的情况下,?:可以起作用,返回int(100)
            var_dump($name,$subTitle,$mainTitle,$test,$test2,$desc,$num);

    可以总结出,最兼容的写法是

    data_get   与 ?:进行配合 ,类似下面这样

    $desc=data_get($arr,"desc","a") ?: "a";

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    BZOJ3566: [SHOI2014]概率充电器
    BZOJ5018: [Snoi2017]英雄联盟
    BZOJ4627: [BeiJing2016]回转寿司
    BZOJ4719: [Noip2016]天天爱跑步
    BZOJ1511: [POI2006]OKR-Periods of Words
    BZOJ4721: [Noip2016]蚯蚓
    BZOJ1922: [Sdoi2010]大陆争霸
    BZOJ2525: [Poi2011]Dynamite
    单选按钮 / 复选框 样式自定义
    HDU 产生冠军 2094
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15069175.html
Copyright © 2011-2022 走看看