1
我想修改迭代SPLObjectStorage對象的方式,例如首先按數據(信息)進行排序。SplObjectStorage的自定義迭代
所以,在一個循環中,它會數值從A到Z(使用sort()函數)
但是,在SPLObjectStorage,有一個數組進不去了,對不對?
是否有可能這樣做,因爲我們沒有訪問數組的對象?
我想修改迭代SPLObjectStorage對象的方式,例如首先按數據(信息)進行排序。SplObjectStorage的自定義迭代
所以,在一個循環中,它會數值從A到Z(使用sort()函數)
但是,在SPLObjectStorage,有一個數組進不去了,對不對?
是否有可能這樣做,因爲我們沒有訪問數組的對象?
不,這是不可能的。在內部,SplobjectStorage
使用與數組(HashTable
)相同的數據結構,但它不是我們從PHP用戶空間獲知的「數組數組」:我們只添加值而不是鍵,因爲鍵實際上是通過哈希值他們(你甚至可以覆蓋getHash
方法覆蓋這個)。另一個區別是您可以額外向對象添加信息。
簡而言之,SplObjectStorage不應該用作數組,而是作爲一個集合或一張地圖,它的優勢在於它。