请问这个 compact 函数是什么意思?

为什么这个函数要这么写?

    public function follow($user_ids)
    {
        if (!is_array($user_ids)) {
            $user_ids = compact('user_ids');
        }
        $this->followings()->sync($user_ids, false);
    }

而不是直接:

    public function follow($user_ids)
    {
        $this->followings()->sync($user_ids, false);
    }

还有请问这个compact是什么意思
不理解: $user_ids = compact('user_ids');

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

sync() 方法接收一个数组,如果 $user_ids 不是数组,就使用 compact() 方法将其转换为关联数组

file

5年前 评论
讨论数量: 7

举个栗子:

$user = 'LiCxi';
$age = 20;

$arr = compact('user', 'age');
// $arr = ['user' => 'LiCxi', 'age' => 20];

compact 有多个参数,字符串类型,比如上面的 user 就代表变量 $user

可以去看看PHP手册 http://php.net/manual/zh/language.variable... 可变变量,非常有趣

5年前 评论

sync() 方法接收一个数组,如果 $user_ids 不是数组,就使用 compact() 方法将其转换为关联数组

file

5年前 评论

举个栗子:

$user = 'LiCxi';
$age = 20;

$arr = compact('user', 'age');
// $arr = ['user' => 'LiCxi', 'age' => 20];

compact 有多个参数,字符串类型,比如上面的 user 就代表变量 $user

可以去看看PHP手册 http://php.net/manual/zh/language.variable... 可变变量,非常有趣

5年前 评论

那么为什么不是?

$user_ids = (array)$user_ids;
5年前 评论

@love123i compact 可以转换成关联数组,前面教程好像解释过

5年前 评论

请问下这里为什么要使用 “is_array($user_ids”判断$user_ids 是不是数组?,用点击关注 以及取消关注难道会传入数组吗?A关注B 一个用户关注一个用户 ,如何传入数组?

4年前 评论
刘大山笔记 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!