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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
ZF等常用php框架中存在的问题
Jan 10 PHP
php 保留小数点
Apr 21 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
PHP中使用localhost连接Mysql不成功的解决方法
Aug 20 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
php实现的验证码文件类实例
Jun 18 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
laravel实现前后台路由分离的方法
Oct 13 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的header和asp中的redirect比较
2006/10/09 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
图片完美缩放
2006/09/07 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
Python单链表简单实现代码
2016/04/27 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
销售自荐信
2013/10/22 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2014年派出所工作总结
2014/11/21 职场文书
考试没考好检讨书
2015/05/06 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python