class xxxx{
       public function &instance()
{
static $_instance = NULL;
if($_instance === NULL)
$_instance = new VService();
return $_instance;
}      }      这样设计有什么好处呢?第一次实例化一个对象后,第二次实例化会提高性能吗

解决方案 »

  1.   

    去掉方法的范围声明 public,这是 php4 实现单例模式的写法
    php5不推荐这种写法,尤其是php5.3以后,这种写法会导致一个语法错误:
    Strict standards: Non-static method VService::instance() should not be called statically
      

  2.   

    class VService {
      private static $_Instance;
      private function __clone() {}
      private function __construct() {}
      public static function getInstance() {
        if(empty(self::$_Instance)) self::$_Instance = new self();
        return self::$_Instance;
      }
    }$o = VService::getInstance();