【发布时间】:2015-10-31 20:27:57
【问题描述】:
我想修改迭代SPLObjectStorage对象的方式,比如先按数据(信息)排序。
所以,在一个循环中,它以数字的方式从 a 到 z(使用 sort() 函数)
但是,在 SPLObjectStorage 中,无法访问数组,对吧?
由于我们无法访问对象数组,是否可以这样做??
【问题讨论】:
标签: php spl splobjectstorage
我想修改迭代SPLObjectStorage对象的方式,比如先按数据(信息)排序。
所以,在一个循环中,它以数字的方式从 a 到 z(使用 sort() 函数)
但是,在 SPLObjectStorage 中,无法访问数组,对吧?
由于我们无法访问对象数组,是否可以这样做??
【问题讨论】:
标签: php spl splobjectstorage
不,这是不可能的。在内部SplobjectStorage 使用与数组相同的数据结构(HashTable),但它不是我们从 PHP 用户区知道的“数组数组”:我们只添加值而不是键,因为键实际上是从通过散列它们的值(您甚至可以通过覆盖getHash 方法来覆盖它)。另一个区别是您可以额外向对象添加信息。
简而言之,SplObjectStorage 不应该作为一个数组使用,而作为一个集合或者一个映射,它的优势就在于此。
【讨论】: