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 相关文章推荐
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php延迟静态绑定实例分析
Feb 08 PHP
php生成带logo二维码方法小结
Apr 08 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
php图片裁剪函数
Oct 31 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python3基础之输入和输出实例分析
2014/08/18 Python
详解Python import方法引入模块的实例
2017/08/02 Python
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
numpy库reshape用法详解
2020/04/19 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
审核会计岗位职责
2013/11/08 职场文书
管理失职检讨书
2014/02/12 职场文书
2014年帮扶工作总结
2014/11/26 职场文书