php设计模式之单例模式用法经典示例分析


Posted in PHP onSeptember 20, 2019

本文实例讲述了php设计模式之单例模式用法。分享给大家供大家参考,具体如下:

<?php
/**
* @desc 单例模式
* 目的:防止过多的new对象和clone对象,没有对象的时候new对象并缓存,始终保持都是同一个对象实例
* 特点:php的单例是进程中的单例,而不像java属于内存中的单例
* **/
class single{
protected static $ins = null;//声明一个静态变量,用来存储类的实例
private $name;//声明一个私有的实例变量
/**
* 私有化构造方法,防止不断的创建对象
* **/
private function __construct(){
}
public static function getIns(){
if(self::$ins===null){
self::$ins = new self();
}
return self::$ins;
}
public function setName($name){
$this->name = $name;
}
public function getName(){
return $this->name;
}  
}
$single1 = single::getIns();
$single2 = single::getIns();
$single1->setName('hello world!');
$single2->setName('hello php!');
echo $single1->getName();//输出结果:hello php!
echo "<br/>":
echo $single2->getName();//输出结果:hello php!
/***
* 分析:输出的结果都是hello php!
* 采用了单例模式对象$single1与$single2是等价的,因此对象$single1与$single2都在设置类的变量时指向都是一致的,变量值取对象设置的最新的一个值
* **/

运行结果:

hello php!
hello php!

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP新手上路(二)
Oct 09 PHP
php 图片上添加透明度渐变的效果
Jun 29 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP请求Socket接口测试实例
Aug 12 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP代码重构方法漫谈
Apr 17 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 PHP
Yii框架where查询用法实例分析
Oct 22 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 PHP
php数组和链表的区别总结
Sep 20 #PHP
php输出反斜杠的实例方法
Sep 19 #PHP
php实现session共享的实例方法
Sep 19 #PHP
php进行md5加密简单实例方法
Sep 19 #PHP
php解决安全问题的方法实例
Sep 19 #PHP
PHP中16个高危函数整理
Sep 19 #PHP
php实例化一个类的具体方法
Sep 19 #PHP
You might like
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php数组删除元素示例
2014/03/21 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP 错误处理机制
2015/07/06 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
js取整数、取余数的方法
2014/05/11 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
使用Python的PEAK来适配协议的教程
2015/04/14 Python
详解Python进程间通信之命名管道
2017/08/28 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
如何基于python操作json文件获取内容
2019/12/24 Python
python模拟斗地主发牌
2020/04/22 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
应届大学生求职信
2013/12/01 职场文书
防溺水主题班会教案
2015/08/12 职场文书
2019同学聚会主持词
2019/05/06 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL