1
我想修改迭代SPLObjectStorage对象的方式,例如首先按数据(信息)进行排序。SplObjectStorage的自定义迭代
所以,在一个循环中,它会数值从A到Z(使用sort()函数)
但是,在SPLObjectStorage,有一个数组进不去了,对不对?
是否有可能这样做,因为我们没有访问数组的对象?
我想修改迭代SPLObjectStorage对象的方式,例如首先按数据(信息)进行排序。SplObjectStorage的自定义迭代
所以,在一个循环中,它会数值从A到Z(使用sort()函数)
但是,在SPLObjectStorage,有一个数组进不去了,对不对?
是否有可能这样做,因为我们没有访问数组的对象?
不,这是不可能的。在内部,SplobjectStorage
使用与数组(HashTable
)相同的数据结构,但它不是我们从PHP用户空间获知的“数组数组”:我们只添加值而不是键,因为键实际上是通过哈希值他们(你甚至可以覆盖getHash
方法覆盖这个)。另一个区别是您可以额外向对象添加信息。
简而言之,SplObjectStorage不应该用作数组,而是作为一个集合或一张地图,它的优势在于它。