又来麻烦了,不要烦啊进来帮帮吧

又来麻烦了,不要烦啊进来帮帮吧

class singleton
{

  function singleton
()
  {
  

static $instances
=array();

  

$class = get_class($this
);

   if (!array_key_exists($class, $instances
))
   {
     

$instances[$class] = $this
;
   }

   

foreach (get_class_vars($class) as $var => $value
)
   {
     $this->$var =& $instances[$class]->$var
;
   }
  }

}

?>


刚在教程上面看到这个实例有几处不明白,希望得到各位帮忙,谢谢
(!array_key_exists($class, $instances))
get_class_vars($class) as $var => $value
$this->$var =& $instances[$class]->$var;


因为初学没多久,学到类这里来了,这几处,等各位解释

array_key_exists -- 检查给定的键名或索引是否存在于数组中
说明
bool array_key_exists ( mixed key, array search )


array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。




get_class_vars
(PHP 4, PHP 5)

get_class_vars --  返回由类的默认属性组成的数组
描述
array get_class_vars ( string class_name )


返回由类的默认属性组成的关联数组,此数组的元素以 varname => value 的形式存在。



.........


看手册吧

谢谢大哥的回答,