首页 > 学习中心 > 开发技术 > PHP

文档大纲

    PHP中?array和array的区别和用法

    public function findById(int $groupId, int $wxappId): ?array
    {
        $row = $this->videoGroup($wxappId)
            ->where('group_id', $groupId)
            ->find();
        return $row ? $row->toArray() : null;
    }
    

    中的?array是什么意思?怎么使用?

    这是 PHP 7.1+ 的「可为 null 返回类型」语法 ,叫 Nullable Return Type


    一句话解释

    ?array
    

    意思是: 这个方法要么返回 array,要么返回 null ,两种类型都合法。


    对比就清楚了

    写法 含义
    : array 必须返回数组,返回null会直接抛 TypeError
    : ?array 可以返回数组,也可以返回null
    不加类型 想返回啥都行(无约束)

    放到你这个方法里看

    public function findById(int $groupId, int $wxappId): ?array
    {
        $row = $this->videoGroup($wxappId)
            ->where('group_id', $groupId)
            ->find();
        return $row ? $row->toArray() : null;
    }
    
    • 查到了 → return $row->toArray()array​ ✅
    • 没查到 → return nullnull​ ✅

    如果写成 : arrayreturn nullPHP 会直接报错

    TypeError: Return value must be of type array, null returned
    

    为什么推荐写 ?array 而不是 array

    在业务语义上,你这个方法是 「可能找不到」 的查询:

    $group = $model->findById($id, $wxappId);
    if (!$group) {
        throw new Exception('分组不存在');
    }
    
    • 返回 ?array → 调用方一眼就知道要判空
    • 返回 array → 要么你返回空数组 [](语义模糊),要么就报错

    👉 null 表达「不存在」比 [] 更准确


    什么时候该用 ?

    场景 推荐
    单条查询(find) ?array
    列表查询(select) array✅(查不到返回[]就行)
    统计 count int
    新增返回 ID int?int(失败可能 false)

    一个常见小坑(ThinkPHP)

    find();        // 查不到返回 null
    select();      // 查不到返回空 Collection(转 toArray() 是 [])
    

    所以:

    • find() → 返回类型用 ?array
    • select()->toArray() → 返回类型用 array

    推荐商品

    更多
    来团GEO-AI搜索优化系统 用AI打造企业品牌

    来团GEO-AI搜索优化系统 用AI打造企业品牌

    来团科技GEO优化&AI搜索优化系统,是通过大模型内容投喂+训练,将企业品牌及产品信息在多平台AI生成的答案中获取优先展现,更精准触达潜在目标客户,让企业品牌出现在AI搜索里。让客户一搜就看到你,实现一问就有你,一查就信你,一看就找你的营销效果。

    来团智慧商业小程序零代码开发平台 多行业适用

    来团智慧商业小程序零代码开发平台 多行业适用

    来团智慧商业小程序零代码开发平台,多行业适配。无需代码,拖拽式设计,轻松打造订货商城、会员制商城、分销商城及小程序官网。不仅能满足通用需求,还支持定制化,从页面布局到功能模块,随心定制,助您快速搭建专属商业小程序,抢占市场先机。

    微名通名片 VIP年卡会员 | SVIP永久会员

    微名通名片 VIP年卡会员 | SVIP永久会员

    来团科技微名通不止是电子名片,更是你的商业连接器。比起传统名片,它更像你的 “迷你商业工具”:信息多、好携带、能互动,还不浪费纸张。不管是跑业务、拓人脉,还是展示企业,一张「微名通」电子名片,就能帮你把商机揣在手机里。

    来团LTCRM客户管理系统 可独立部署

    来团LTCRM客户管理系统 可独立部署

    来团科技CRM客户管理系统,帮你把 “线索→成交→回款” 全流程管明白。这就是一套 “让销售省心、老板放心” 的客户管理工具,从获客到回款,帮你把生意攥在手里。

    大纲

    文档目录

      联系我们
      联系方式
      • 官方服务热线:17721141027
      • 邮箱:kf@ilaituan.com
      • QQ:20262336
      扫码添加客服
      微信