這似乎也是在 contains() 函式中使用的函式,所以如果您儲存的所有物件都已經有唯一的 ID,您可以用您自己的類別覆寫這個函式。
<?php
class UserStorage extends SPLObjectStorage{
public function getHash($obj){
return $obj->id;
}
}
$us = new UserStorage();
$user1 = new User(1);
$user2 = new User(2);
$us->attach($user1);
$us->attach($user2);
$me = new User(2);
// 以下程式碼通常會失敗,因為它們是兩個不同的物件
// 但現在使用我們擴展的 getHash() 就可以運作了
$us->contains($me);
?>