宁波网站建设咨询:宁波网站建设
13780026116 宁波网站制作
网站公告
PHP技术
技术交流
网络推广
网站建设常见问答
殷雯动态
你的位置:首页> 新闻/观点 > PHP技术>PHP单例模式我的理解
PHP技术
PHP单例模式我的理解

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;

这个例子简单的演示了一个单例模式。


点击:  1175    时间: 2018-12-07
上一条: 相关知识
下一条: Thinkphp5.1.30查询和查询分页代码
 
 
快速通道: 关于我们    网站建设    主机域名    付款方式    我的声明
  
联系我们
手机扫描QQ
网站建设咨询:
咨询热线:
宁波殷雯网站建设工作室
地 址: 浙江省宁波市江东区
电 话: 13780026116 
邮 箱:
waichun@qq.com
宁波网站建设
宁波网站制作
13780026116
宁波殷雯网站建设工作室 版权所有   浙ICP备16030041号-1