2015-08-08 113 views
1

我想修改迭代SPLObjectStorage对象的方式,例如首先按数据(信息)进行排序。SplObjectStorage的自定义迭代

所以,在一个循环中,它会数值从A到Z(使用sort()函数)

但是,在SPLObjectStorage,有一个数组进不去了,对不对?

是否有可能这样做,因为我们没有访问数组的对象?

回答

1

不,这是不可能的。在内部,SplobjectStorage使用与数组(HashTable)相同的数据结构,但它不是我们从PHP用户空间获知的“数组数组”:我们只添加值而不是键,因为键实际上是通过哈希值他们(你甚至可以覆盖getHash方法覆盖这个)。另一个区别是您可以额外向对象添加信息。

简而言之,SplObjectStorage不应该用作数组,而是作为一个集合或一张地图,它的优势在于它。