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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
php 购物车的例子
May 04 PHP
php下将XML转换为数组
Jan 01 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
解析ajax事件的调用顺序
Jun 17 PHP
PHP开发微信支付的代码分享
May 25 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
php session 写入数据库
Feb 13 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP实现的支付宝支付功能示例
Mar 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
超级强大的表单验证
2006/06/26 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python常见排序算法基础教程
2017/04/13 Python
python中dict()的高级用法实现
2019/11/13 Python
python内置模块collections知识点总结
2019/12/19 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
一些PHP的面试题
2015/05/06 面试题
资料员的岗位职责
2013/11/20 职场文书
土木工程师岗位职责
2013/11/24 职场文书
授权委托书范本
2014/04/03 职场文书
政治思想表现评语
2014/05/04 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
售房委托书
2014/08/30 职场文书
写给父母的感谢信
2015/01/22 职场文书
跳高加油稿
2015/07/21 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang