/**
* @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();

最新文章

  1. ECharts+BaiduMap+HT for Web网络拓扑图应用
  2. .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
  3. 阅读《构建之法》第八、九、十章有感和Sprint总结
  4. Entity Framework之问题收集
  5. git使用小结
  6. PAT 字符串-02 删除字符串中的子串
  7. 【Vijos】【1923】漫长的等待
  8. 一个小时成功安装SQL Server 2012图解教程
  9. 看了一本书,说可以利用Hierarchy Viewer优化布局
  10. Windows Phone
  11. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)
  12. 18-10-08 对Excel 表格添加颜色
  13. Codefoces 432C Prime Swaps(数论+贪心)
  14. python 移动文件夹
  15. 做 Excel 的 XML schema.xsd
  16. DQN(Deep Reiforcement Learning) 发展历程(二)
  17. Lua面向对象 --- 多继承
  18. 26、线性表(List)
  19. MySQL存储过程中的3种循环【转载】
  20. STM32 控制GSM模块收发信息 F407 discovery

热门文章

  1. .net生成随机字符串
  2. WPF入门教程系列八——布局之Grid与UniformGrid(三)
  3. KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
  4. KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
  5. 第三节:Vue计算属性
  6. String详解
  7. js中如果省略分号那么它是如何运行的
  8. 最先进的开源游戏引擎KlayGE 4.4发布
  9. Javascript定时器(三)——setTimeout(func, 0)
  10. OkHttp,Retrofit 1.x - 2.x 基本使用