当前位置:编程学习 > > 正文

php单例设计方法(php设计模式之单例模式用法经典示例分析)

时间:2021-10-22 07:08:43类别:编程学习

php单例设计方法

php设计模式之单例模式用法经典示例分析

本文实例讲述了php设计模式之单例模式用法。分享给大家供大家参考,具体如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • <?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程序设计有所帮助。

    原文链接:https://www.cnblogs.com/lisqiong/p/6552815.html

    上一篇下一篇

    猜您喜欢

    热门推荐