<?php namespace Moserware\Skills; class HashMap { private $_hashToValue = array(); private $_hashToKey = array(); public function getValue($key) { return $this->_hashToValue[self::getHash($key)]; } public function setValue($key, $value) { $hash = self::getHash($key); $this->_hashToKey[$hash] = $key; $this->_hashToValue[$hash] = $value; return $this; } public function getAllKeys() { return \array_values($this->_hashToKey); } public function getAllValues() { return \array_values($this->_hashToValue); } public function count() { return \count($this->_hashToKey); } private static function getHash($key) { if(\is_object($key)) { return \spl_object_hash($key); } return $key; } } ?>