您现在的位置是:首页 > PHP技术PHP技术
PHP单例模式我的理解
2018-12-07【PHP技术】2496 人已围观
简介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:
很赞哦! ()
相关文章
随机图文
JiaThis将于4月30日关闭分享和友言评论服务
这是网站上小编上经常看到的一种分享按钮,今天突闻要关闭了.虽然小编未曾使用过,但还是觉得蛮可惜 .之前国内的第三方评论服务多说宣布关闭,...
Sublime Text添加插入带当前代码段说明
sublime是小编目前使用当中的一款php程序编辑器,功能非常的强大,今天推荐给各位.下面是如何在代码段内快捷插入常用说明.非常实用哦 ...
Mysql进阶之in详解
MySQL IN 语法 IN 运算符用于 WHERE 表达式中,以列表项的形式支持多个选择,语法如下: WHERE column IN ...
php对网站优化中的分词处理办法
今天突然想到一个分词问题,应用场景:某网站需要特别的seo优化,需要对文章标题自动提取关键词. 这就是一个中文分词应用.经殷雯小编半天的...




微信收款码
支付宝收款码