扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
为什么$result = Staff::select($where)之后不能直接dump($result->getData()),而非要遍历数组foreach ($result as $value)
先来个官方截图,证实我的底层源码分析的正确性:
关于这个问题还有几个方面有待探讨:
1、既然数据存在data属性中,遍历对象时是怎么确定是data属性并去除其中的数据集的
2、这个只是Model对象、如果是Collection对象他是怎么实现的呢?
这两个问题的出现就该ArrayAccess出场了,等晚上回去在更新,让你真正了解对象遍历的底层运作机制。
首先先看官方手册说明:
再看看底层源码:
官方手册屏蔽许多细节,直接说明结果
最后一个问题,为什么返回的结果能进行遍历?
无论是Model类、还是Collection类都实现了同一ArrayAccess接口,这样就能像访问数组一样访问对象中的属性了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
先来个官方截图,证实我的底层源码分析的正确性:
关于这个问题还有几个方面有待探讨:
1、既然数据存在data属性中,遍历对象时是怎么确定是data属性并去除其中的数据集的
2、这个只是Model对象、如果是Collection对象他是怎么实现的呢?
这两个问题的出现就该ArrayAccess出场了,等晚上回去在更新,让你真正了解对象遍历的底层运作机制。
首先先看官方手册说明:
再看看底层源码:
官方手册屏蔽许多细节,直接说明结果
最后一个问题,为什么返回的结果能进行遍历?
无论是Model类、还是Collection类都实现了同一ArrayAccess接口,这样就能像访问数组一样访问对象中的属性了。