在php中,我可以使对象的行为与数组有多相似?我该怎么做呢?
我知道通过实现在php中,我可以使对象的行为与数组有多相似?我该怎么做呢?,php,arrays,object,memory-management,Php,Arrays,Object,Memory Management,我知道通过实现iterable可以使对象能够foreach覆盖。我想更进一步,让一个对象像一个数组一样在尽可能多的需要数组的地方做出反应 (这样做的原因是因为我从数据库中选择数据,默认情况下生成的语句对象在内存上非常好,而数组形式的完整数据集倾向于将内存使用率纳入轨道。我希望在数组类型为不知道这是否是你所需要的,但你可以: // $your_object foreach(get_object_vars($your_object) as $property=>$value) /* do s
iterable
可以使对象能够foreach
覆盖。我想更进一步,让一个对象像一个数组一样在尽可能多的需要数组的地方做出反应
(这样做的原因是因为我从数据库中选择数据,默认情况下生成的语句对象在内存上非常好,而数组形式的完整数据集倾向于将内存使用率纳入轨道。我希望在数组类型为不知道这是否是你所需要的,但你可以:
// $your_object
foreach(get_object_vars($your_object) as $property=>$value) /* do something */ ;
如果我没记错的话,你可以(互换地)在任何需要的地方使用打字
也许它不被认为是OOP糖果,但它是必不可少的东西
count
$obj['index']
这样的语法就可以工作了
,结束
,上一个
,下一个
,重置
,当前
键
,array\u walk
,array\u walk\u recursive
array\u key\u存在
阵列访问
和可计数
接口。前者允许使用$obj[…]
访问对象,后者允许计数($obj)
谢谢你的分解,我要看看我能做些什么,尽管我意识到我的问题稍微更深/更复杂,所以我要在脑海中重新表述一个问题。(我意识到我的问题是,当数组是什么时,数据库语句对象不会像数组一样反应,尽管也许我可以简单地将语句对象包装在实现上述内容的更合适的对象中)即使在需要阵列时,***也不会像阵列一样工作,而且ArrayAccess接口似乎是该问题的解决方案。