class Registry
{
private static $_instance = null;
private $_vars = array();
public static function instance()
{
if (self::$_instance == null)
self::$_instance = new self();
return self::$_instance;
}
public function __get($var)
{
if (isset($this->_vars[$var]))
return $this->_vars[$var];
}
public function __set($var, $val)
{
if (!isset($this->_vars[$var]))
$this->_vars[$var] = $val;
}
private function __construct() {}
private function __clone() {}
}
Как сделать так, чтобы в результате такой конструкции:
Registry::instance()->config->lang = 'russian';
Присваивалось значение $this->_vars['config']['lang'], и выводилось "russian" при такой:
echo Registry::instance()->config->lang
Короче говоря $array['blahblahblah']['test']['xzxz'] соответствовало Registry::instance()->blahblahblah->test->xzxz