_cache[$key] = &$object; } function &get($key) { $ret = NULL; if (isset($this->_cache[$key])) { $ret = &$this->_cache[$key]; } return $ret; } } class FALazyObject { var $_class; var $_args = array(); function FALazyObject($class, $args = NULL) { $this->_class = $class; if (is_array($args)) $this->_args = $args; } function &create($class, $args = NULL) { if (!class_exists($class)) trigger_error("Class does not exist: {$class}", E_USER_ERROR); if (!is_array($args)) $args = array(); $ret = NULL; $arglist = ''; $sep = ''; foreach ($args as $key => $value) { $arglist .= $sep."\$args[$key]"; $sep = ', '; } eval('$ret = &new '.$class."($arglist);"); return $ret; } function &load($args = NULL) { if (is_array($args)) $this->_args = $args; return FALazyObject::create($this->_class, $this->_args); } } ?>