my problem comes when i convert a string into a variable and try to return that variable that is defined in get_defined_vars(). from my using() method.
class registry
{
private $loaded = array();
private static $instance;
private function __construct(){}
public static function instance()
{
if(!(self::$instance instanceof self))
{
self::$instance = new self;
}
return(self::$instance);
}
protected function set($classname , $instance)
{
if(!isset(self::$instance->loaded[$classname]))
{
return self::$instance->loaded[$classname] = $instance;
}
return(FALSE);
}
protected function get($classname)
{
if(isset(self::$instance->loaded[$classname]))
{
return self::$instance->loaded[$classname];
}
return(FALSE);
}
public static function using($classname , array $params = null)
{
static $init_vars;
if(!class_exists($classname , FALSE) && !is_object($classname))
{
if(self::$instance->get($classname) === FALSE)
{
if(!is_null($params) && is_array($params))
{
require($classname.'.php');
parse_str($classname);
$init_var = get_defined_vars();
if(isset($init_var[$classname]))
{
echo 'REG YEP';
$init_vars[$classname] = new $classname($params);
}
}
else
{
require($classname.'.php');
parse_str($classname);
$init_var = get_defined_vars();
if(isset($init_var[$classname]))
{
echo 'REG YEP';
$init_vars[$classname] = new $classname();
return $init_vars[$classname];
}
}
}
}
}
}
registry::instance();
registry::using('test');
if(isset($init_vars['test']) or isset($test))
{
echo 'YAY';
}
else
{
echo 'NOPE';
}