array(), 'flags' => parent::ARRAY_AS_PROPS); foreach ($defaults as $key => $val) { if (isset($params[$key]) && $params[$key] !== "") { $defaults[$key] = $params[$key]; } } extract($defaults); parent::__construct($array, $flags); } public static function getInstance() { if( self::$_instance === NULL ) { self::$_instance = new self(); } return self::$_instance; } public static function get($index) { $instance = self::getInstance(); if (!$instance->offsetExists($index)) { throw new Exception("No entry is registered for key '$index'"); } return $instance->offsetGet($index); } public static function set($index, $value) { $instance = self::getInstance(); $instance->offsetSet($index, $value); } public static function isRegistered($index) { if (self::$_instance === null) { return false; } return self::$_instance->offsetExists($index); } /** * Workaround for http://bugs.php.net/bug.php?id=40442 (ZF-960). */ public function offsetExists($index) { return array_key_exists($index, $this); } } ?>