当使用 Hashable 对象作为 $key 时,Map::put() 直到稍后才会调用 Hashable::hash() 在键上。例如
<?
类 Key 实现 \Ds\Hashable
{
受保护的 $id;
公共函数 __construct($id)
{
$this->id = $id;
}
公共函数 equals($obj) : bool
{
返回 $this->id == $obj->id;
}
公共函数 hash()
{
返回 $this->id;
}
}
$map = new \Ds\Map();
$myki = new Key('myki');
$map->put($myki, "Value String");
var_dump($map->get($myki));
echo 'Map::put() 存储 Hashable 对象,这会导致 toArray() 中出现错误' . PHP_EOL;
var_dump($map->toArray());
?>