laravel中集合和數(shù)組的區(qū)別是什么?
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
Laravel中的數(shù)組,源代碼位置IlluminateSupportArr.php
;
Laravel中的集合,源代碼位置IlluminateSupportCollection.php
;
集合是對數(shù)組的再次封裝,以對象的形式呈現(xiàn);提供了很多方法功能(這些方法內(nèi)部大多采用了回調(diào)函數(shù)),比數(shù)組形式的操作要靈活多了;
本質(zhì)上就是用面向?qū)ο蟮男问讲僮髟睾鸵詳?shù)組形式操作元素的區(qū)別;如果以對象操作,如vika_傾慕
說的,可以鏈?zhǔn)讲僮?;如果按照?shù)組操作,會產(chǎn)生很多中間臨時(shí)變量或者語句,代碼顯得冗長;
集合比數(shù)組更強(qiáng)大的地方是其使用了各種 map / reduce 的直觀操作,例如,我們移除所有未激活的用戶模型和收集其余各個用戶的名字:
$users = App\User::where('active', 1)->get();
$names = $users->reject(function ($user) {
return $user->active === false;
})
->map(function ($user) {
return $user->name;
});
如果覺得可以,記得采納