ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
单例模式特点(三私一公),所有的单例模式至少拥有以下四种公共元素: 1. 私有的构造方法 (防止类外实例化) 2. 私有的克隆方法 (防止通过克隆生成对象) 3. 私有的静态属性 (保存类的实例) 4. 公有的静态方法 (调取这个类相当一个接口 ) 单例类不能再其它类中直接实例化,只能被其自身实例化。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 ~~~ class Single { private $name;//声明一个私有的实例变量 static public $instance;//声明一个静态变量(保存在类中唯一的一个实例) private function __construct(){//声明私有构造方法为了防止外部代码使用new来创建对象。 } static public function getinstance(){//声明一个getinstance()静态方法,用于检测是否有实例对象 if(!self::$instance) self::$instance = new self(); return self::$instance; } private function __clone(){ //echo "单例模式失败"; } public function setname($n){ $this->name = $n; } public function getname(){ return $this->name; } } $oa = Single::getinstance(); $ob = Single::getinstance(); $oa->setname('hello world'); $ob->setname('good morning'); echo $oa->getname();//good morning echo $ob->getname();//good morning ~~~