2015-08-08 101 views
1

我想修改迭代SPLObjectStorage對象的方式,例如首先按數據(信息)進行排序。SplObjectStorage的自定義迭代

所以,在一個循環中,它會數值從A到Z(使用sort()函數)

但是,在SPLObjectStorage,有一個數組進不去了,對不對?

是否有可能這樣做,因爲我們沒有訪問數組的對象?

回答

1

不,這是不可能的。在內部,SplobjectStorage使用與數組(HashTable)相同的數據結構,但它不是我們從PHP用戶空間獲知的「數組數組」:我們只添加值而不是鍵,因爲鍵實際上是通過哈希值他們(你甚至可以覆蓋getHash方法覆蓋這個)。另一個區別是您可以額外向對象添加信息。

簡而言之,SplObjectStorage不應該用作數組,而是作爲一個集合或一張地圖,它的優勢在於它。