首页 > 其他分享 >一个类继承一个单例还是单例的实现

一个类继承一个单例还是单例的实现

时间:2023-08-07 11:55:20浏览次数:42  
标签:function __ 继承 self private 一个 static 单例 inc

class A
{
   static $inc;
   private function __construct(){}
   private function __clone(){}
   public static function get_self()
   {
      if(!(self::$inc instanceof self)){
         self::$inc =  new self();
      }
      return self::$inc;
   }
   
   public static function get_static()
   {
      if(!(self::$inc instanceof self)){
         self::$inc =  new static();//主要就是实例static
      }
      return self::$inc;
   }
   
   public function geta(){
      echo 111;
   }
}

class B extends A
{
   static $inc;
   private function __construct(){}
   private function __clone(){}
   public function gethh(){
      echo 222;
   }
}



$obj = B::get_static();
//var_dump($obj);
//echo "<br />";
$obj->geta();
$obj->gethh();

标签:function,__,继承,self,private,一个,static,单例,inc
From: https://www.cnblogs.com/fuqian/p/17611058.html

相关文章

  • vue中axios多次相同请求取消上一个请求
    apiimportaxiosfrom'axios';exportfunctiongetDataFlowGraph(id,that){returnrequest({requestBase,url:`/workflowMetadata/getDataFlowGraph/${id}`,method:'get',//设置canceltoken用于多次请求,中断上一次请求cancel......
  • 用Node.js搭建一个简单Web服务器
    Node.js是基于ChromeV8引擎的JavaScript运行时环境,它允许我们在服务器端运行JavaScript代码,这让我们可以用JavaScript构建Web服务器,处理请求和响应。我们一起探索了如何用Node.js搭建一个简单但强大的Web服务器!什么是Nodejs在搭建Web服务器之前,先让我们了解一下今天的主角Nodejs。......
  • 定义一个类,在实例化的时候,抛出NameError异常
    代码1:classcla:def__init__(self):#raiseNameError#抛出异常print(r)cla()运行截图: ......
  • 华为发布数字资产继承功能
    在华为开发者大会2023(HDC.Together)上,华为常务董事、终端BGCEO、智能汽车解决方案BUCEO余承东正式发布了数字资产继承功能,HarmonyOS提供了安全便捷的数字资产继承路径。在鸿蒙世界中,我们每个人在每台设备、应用中都沉淀了大量的数字资产,包括信息类资产,比如消息、照片、联系人、......
  • 如何构建一个 NodeJS 影院微服务并使用 Docker 部署
    前言如何构建一个NodeJS影院微服务并使用Docker部署。在这个系列中,将构建一个NodeJS微服务,并使用DockerSwarm集群进行部署。以下是将要使用的工具:NodeJS版本7.2.0MongoDB3.4.1DockerforMac1.12.6在尝试本指南之前,应该具备:NodeJS的基本知识Docker的基本知识(并且已经......
  • 分享一个在线二进制编码网站,特别方便好用
    二进制文件是什么二进制文件是一种计算机文件,其中的数据以二进制形式编码。在计算机系统中,所有的数据和指令都以二进制形式表示。二进制文件通常包含可执行代码、程序数据、图像、音频、视频等多种类型的信息。与文本文件不同,二进制文件中的数据不以可读的字符形式表示,而是以字......
  • [工程开发]当我们写一个tcp服务端的时候,我们在写什么?(一)
    当我们写一个tcp服务器和客户端的时候,我们在写什么?(一)本篇只聊服务端。最近想搞一个服务器的协议,然后捏,简单搓个tcp服务器协议看看效果,主要是最近实在是没事干,闲得没事搓个服务器看看,当然了,Qt中的我已经有了,现在我需要的是一个C#上的服务器。当然了,我写这个服务器不会是从很学术......
  • C语言定义并初始化一个二维数组(利用二级指针)
    C语言定义并初始化一个二维数组(利用二级指针)1.代码如下#include<stdio.h>#include<stdlib.h>intmain(){//m,n表示数组的行数和列数intm,n;scanf("%d%d",&m,&n);//p是一个二级指针,使用malloc函数初始化。注意p指向的是一个指针,所以sizeof操作......
  • C语言定义并初始化一个二维数组(利用指针数组)
    C语言定义并初始化一个二维数组(利用指针数组),可以实现二位数组的每一行的元素个数不同1.代码如下#include<stdio.h>#include<stdlib.h>intmain(){//arr是一个指针数组,即这个数组的所有元素都是指针,每一个元素都指向一个int型数组,每一个int型数组的长度可以不同......
  • 1.创建一个类,类A中定义了一个方法,该方法能接受3个参数根据参数判断是做加法还是减法并
    classA:defcal(self,x,y,z):ifz=='+':returnx+yifz=='-':returnx-yelse:print('error')a=A()b=a.cal(3,4,'+')print(b)运行结果: 2.延伸:创建一个类,类B......