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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
php使用百度ping服务代码实例
Jun 19 PHP
destoon复制新模块的方法
Jun 21 PHP
php数组使用规则分析
Feb 27 PHP
php数字运算验证码的实现代码
Jul 30 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
thinkPHP5框架接口写法简单示例
Aug 05 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内置过滤器FILTER使用实例
2014/06/25 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
vue基于两个计算属性实现选中和全选功能示例
2019/02/08 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
关于Python作用域自学总结
2019/06/10 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
为什么相对PHP黑python的更少
2020/06/21 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
保密工作目标责任书
2014/07/28 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
社区活动总结
2015/02/04 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS