我想修改迭代SPLObjectStorage对象的方法,例如首先按数据(info)对其进行排序。
因此,在一个循环中,它从数字到数字从z到z(使用sort()函数)
但是,在SPLObjectStorage中,没有访问数组的权利,对吗?
是否可以这样做,因为我们无法访问对象数组?
答案 0 :(得分:1)
不,这是不可能的。内部SplobjectStorage
使用与数组相同的数据结构(HashTable
),但它不是"数组 - 数组"正如我们从PHP用户所知道的那样:我们只添加值而不是键,因为键实际上是通过散列来从值中生成的(您甚至可以通过覆盖getHash
方法来覆盖它)。另一个区别是您可以另外向对象添加信息。
简而言之,SplObjectStorage不应该用作数组,但作为一个集合或一个映射,它的优势在于它。