PHP 单例模式继承的实现方式
2024-09-13 04:39:58
/**
* @author xiaojiang
* 方式1
*/
class father{
static $models = [];
static public function getInstance(){
$name = get_called_class();
if( !isset( self::$models[$name] ) ){
self::$models[$name] = new $name();
}
return self::$models[$name];
} public function m1(){
echo "fm1";
}
public function m2(){
echo "fm2";
}
}
class child extends father{
public function m1(){
echo 'cm1';
}
}
father::getInstance()->m1();
child::getInstance()->m1(); /**
* 方式2
*/
class base{ static protected $ins = []; static public function getInstance(){
$cName = get_called_class();
if( !isset(static::$ins[$cName]) ){
static::$ins[$cName] = new $cName;
}
return static::$ins[$cName];
} public function m1(){
return "base m1";
} public function m2(){
return "base m2";
} } class cbase extends base{ //static public $ins = null;
static public function getInstance(){
return parent::getInstance();
} public function m1(){
return "cbase m1<br>";
} } echo base::getInstance()->m1()."<br>"; echo cbase::getInstance()->m1();
最新文章
- ECharts+BaiduMap+HT for Web网络拓扑图应用
- .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
- 阅读《构建之法》第八、九、十章有感和Sprint总结
- Entity Framework之问题收集
- git使用小结
- PAT 字符串-02 删除字符串中的子串
- 【Vijos】【1923】漫长的等待
- 一个小时成功安装SQL Server 2012图解教程
- 看了一本书,说可以利用Hierarchy Viewer优化布局
- Windows Phone
- 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
- 18-10-08 对Excel 表格添加颜色
- Codefoces 432C Prime Swaps(数论+贪心)
- python 移动文件夹
- 做 Excel 的 XML schema.xsd
- DQN(Deep Reiforcement Learning) 发展历程(二)
- Lua面向对象 --- 多继承
- 26、线性表(List)
- MySQL存储过程中的3种循环【转载】
- STM32 控制GSM模块收发信息 F407 discovery
热门文章
- .net生成随机字符串
- WPF入门教程系列八——布局之Grid与UniformGrid(三)
- KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
- KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
- 第三节:Vue计算属性
- String详解
- js中如果省略分号那么它是如何运行的
- 最先进的开源游戏引擎KlayGE 4.4发布
- Javascript定时器(三)——setTimeout(func, 0)
- OkHttp,Retrofit 1.x - 2.x 基本使用