为什么 Laravel Collection 类的方法每次都返回一个新实例?

因为业务上一个bug,花了很长时间,最后定位到代码上有一个地方使用 collection 时没有使用链式调用,几个 collection 方法没起效,从而引起业务逻辑出错。

这个问题,首先是我自己问题,没认真看文档。只是大概看了一下 collection 有什么方法,就以为用的时候再看文档就行了。没看到 colleciton 文档中有提到:

一般来说,集合是不可改变的,这意味着每个 Collection 方法都会返回一个全新的 Collection 实例。

实际上 collection 大部分方法都是返回一个全新实例,有少量方法才是返回 this ,例如 transform,add,put,forget,prepend,push 方法。

我暂时无法理解为什么返回一个全新实例,为什么不似普通类一样返回 this,文档就说了一句一般来说,集合是不可改变的,也没说原理。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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