单例模式是为了防止多次重复实例化,例如数据库的重复连接,造成资源浪费。
重点是:
1/一个类只有一个对象
2/类为自行创建,不能通过新来声明
3/用途:在整个系统中统一提供这一个对象。
写法:
1/类中定义一个私有静态变量
2/类中只提供私有的构造函数
3/提供一个静态公有函数用来创建私有对象本身。
4/使用__clone防止克隆
<代码> & lt; ? php//学习使用单例模式 类Danli { 私有静态$ db=零; 私有静态num美元=0; 私人__construct()函数 { 回声”对象已经构建完成:“.self:: num美元。“次\ n”; } 公共静态getInstance()函数 { 如果自我(self:: $ db instanceof) { 回声”已经实例化,不要重复实例\ n”; 返回self:: $ db; 其他}{ 自我::$ num +=1; 返回self:: $ db=新的自我(); } } 静态功能测试() { 回声”调用成功\ n”; } 公共函数__clone () { 回声”不能克隆哦”; } } $ d=Danli: getInstance (); 美元d→测试(); $ c=Danli: getInstance (); $ c→测试(); d=克隆c美元;//代码>