SplObjectStorage的自定义迭代

时间:2015-08-08 14:03:17

标签: php spl splobjectstorage

我想修改迭代SPLObjectStorage对象的方法,例如首先按数据(info)对其进行排序。

因此,在一个循环中,它从数字到数字从z到z(使用sort()函数)

但是,在SPLObjectStorage中,没有访问数组的权利,对吗?

是否可以这样做,因为我们无法访问对象数组?

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。内部SplobjectStorage使用与数组相同的数据结构(HashTable),但它不是"数组 - 数组"正如我们从PHP用户所知道的那样:我们只添加值而不是键,因为键实际上是通过散列来从值中生成的(您甚至可以通过覆盖getHash方法来覆盖它)。另一个区别是您可以另外向对象添加信息。

简而言之,SplObjectStorage不应该用作数组,但作为一个集合或一个映射,它的优势在于它。