您现在的位置是:首页 > PHP技术PHP技术
PHP单例模式我的理解
2018-12-07【PHP技术】1685 人已围观
简介PHP现在版本越来越新的了,功能也是强大许多,貌似语法习惯也开始参考C java之类,有命名空间等等。今天小编在学习Thinkphp5.1.30时遇到一个PHP...
PHP现在版本越来越新的了,功能也是强大许多,貌似语法习惯也开始参考C java之类,有命名空间等等。
今天小编在学习Thinkphp5.1.30时遇到一个PHP单列模式问题。 听说这是读懂tp内核的重要一步。
那么什么是php单列模式呢? 查询资料看到单例模式关于java的资料到是占了很多条。
那估计php是融合了java的编辑技巧。php单例模式是一种软件设计模式,在它的核心结构中只包含一个单例的特殊类。该模式的目的是保证程序在运行中一个类只有一个实例,就是一个类只有一个对象实例。在tp中用到的 config::has 等等一些助手函数facade门面 调用函数之类估计就是应用到这种开发思想。
<?php //单例 class Uni{ //创建静态私有的变量保存该类对象 static private $instance; //参数 private $config; //防止直接创建对象 private function __construct($config){ $this -> config = $config; echo "我被实例化了"; } //防止克隆对象 private function __clone(){ } static public function getInstance($config){ //判断$instance是否是Uni的对象 //没有则创建 if (!self::$instance instanceof self) { self::$instance = new self($config); } return self::$instance; } public function getName(){ echo $this -> config; } } $db1 = Uni::getInstance(1); $db1 -> getName(); echo "<br>"; $db2 = Uni::getInstance(4); $db2 -> getName(); ?>
运行结果:
我被实例化了1
1
$db1创建对象后,参数是1
$db2没有创建对象,而是直接使用$instance保存的唯一对象,所以输出的参数并没有变为4;
这个例子简单的演示了一个单例模式。
关注宁波网站建设博客,更多精彩分享,敬请期待!
Tags:
很赞哦! ()
相关文章
随机图文
ThinkPHP6.0RC2版本发布啦
一早打开网站看到ThinkPHP6.0RC2版本发布——架构升级、精简核心! 厉害,学的比开发的还要慢! 我们在刚适应从tp3.X到tp5....Thinkphp5.1.30 Session使用笔记
原生PHP使用session过程<?php session_start(); session("username&q...Thinkphp配合ueditor文本区域自动添加p元素问题
这个问题没试用自己的企业网站管理后台没有发现.如果对一篇文章多按几次编辑提交按钮,发现正文内容在最前端不停在添加标签.这是因为在后台调用...css中overflow如何清除浮动
div css布局现在是流行的网站前台的布局方式,在使用 div 嵌套时,如果子div使用了浮动float:left/right等,那么...