我正在编写代码来管理一组独特的对象。这段代码的第一个原型使用了一个关联数组,基本上我一直都是这样做的。
但是,我也热衷于利用添加到更现代 PHP 版本中的功能,例如[SplObjectStorage][1]
这样做,部分是作为一种学习经验,部分是因为它一定会提供优势(我见过的基准表明SplObjectStorage
可以在很多情况下比数组快)。
当前的实现有一个关联数组,我in_array()
在向它添加新对象之前检查对象是否已经在数组中。
我可以看到的一个大问题SplObjectStorage
是它似乎(乍一看)不支持键/值关联数组行为,并且只能被视为索引数组。但是,PHP 新功能的文档不符合该语言更成熟部分的文档标准,我可能只是遗漏了一些东西。
我可以SplObjectStorage
代替关联数组使用吗?如果是这样,添加新对象时如何定义键?SplObjectStorage
更重要的是,与关联数组相比,它们的相对优势和劣势是什么?