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 相关文章推荐
实用函数3
Nov 08 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
php实现RSA加密类实例
Mar 26 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
PHP实现重载的常用方法实例详解
Oct 18 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python自动发邮件脚本
2017/03/31 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
Python中str.join()简单用法示例
2018/03/20 Python
Python装饰器原理与用法分析
2018/04/30 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python和php哪个容易学
2020/06/19 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
《学会合作》教学反思
2014/04/12 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
十二生肖观后感
2015/06/12 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
PyTorch device与cuda.device用法
2022/04/03 Python