• [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

    赞赏作者

    微信交流

  • 相关阅读:
    zfs
    targetcli
    targetcli
    自动制linux iso包
    yum解决重复包,依赖冲突问题
    lvm相关
    vmware相关
    配置本地yum源
    k8s安装prometheus监控
    流水线基础-Pipeline
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15069175.html
Copyright © 2020-2023  润新知