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接口,这样就能像访问数组一样访问对象中的属性了。