84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
為什麼$result = Staff::select($where)之後不能直接dump($result->getData()),而非遍歷數組foreach ($result as $value)
先來個官方截圖,證實我的底層原始碼分析的正確性:
關於這個問題還有幾個方面有待探討:
1、既然資料存在data屬性中,遍歷物件時是怎麼確定是data屬性並去除其中的資料集的
2、這個只是Model物件、如果是Collection物件他是怎麼實現的呢?
這兩個問題的出現就該ArrayAccess出場了,等晚上回去在更新,讓你真正了解物件遍歷的底層運作機制。
先看官方手冊說明:
再看看底層原始碼:
#官方手冊屏蔽許多細節,直接說明結果
#最後一個問題,為什麼回傳的結果能進行遍歷?
無論是Model類別、還是Collection類別都實作了同一ArrayAccess接口,這樣就能像存取陣列一樣訪問物件中的屬性了。
先來個官方截圖,證實我的底層原始碼分析的正確性:
#關於這個問題還有幾個方面有待探討:
1、既然資料存在data屬性中,遍歷物件時是怎麼確定是data屬性並去除其中的資料集的
2、這個只是Model物件、如果是Collection物件他是怎麼實現的呢?
這兩個問題的出現就該ArrayAccess出場了,等晚上回去在更新,讓你真正了解物件遍歷的底層運作機制。
先看官方手冊說明:
再看看底層原始碼:
#官方手冊屏蔽許多細節,直接說明結果
#最後一個問題,為什麼回傳的結果能進行遍歷?
無論是Model類別、還是Collection類別都實作了同一ArrayAccess接口,這樣就能像存取陣列一樣訪問物件中的屬性了。