博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 单例模式继承的实现方式
阅读量:6263 次
发布时间:2019-06-22

本文共 1199 字,大约阅读时间需要 3 分钟。

/** * @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
"; } }echo base::getInstance()->m1()."
";echo cbase::getInstance()->m1();

 

转载地址:http://fhzpa.baihongyu.com/

你可能感兴趣的文章
构造函数产生的点及原因
查看>>
对象、对象数组、JSON、JSON数组的相关操作
查看>>
lua(wax框架) 适配 64位操作系统
查看>>
css3和jquery实现的可折叠导航菜单(适合手机网页)
查看>>
POJ 1696 Space Ant(点积的应用)
查看>>
storyboard ID
查看>>
怎样用Google APIs和Google的应用系统进行集成(1)----Google APIs简介
查看>>
Leetcode: Number of Connected Components in an Undirected Graph
查看>>
Leetcode: Maximum Size Subarray Sum Equals k
查看>>
C#语言实现ArcGIS数据源重置之Set Data Source功能
查看>>
Codeforces Round #344 (Div. 2) A. Interview 水题
查看>>
Premiere Pro & After Effects插件开发调试方法
查看>>
墨西哥短暂生活杂谈
查看>>
第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
查看>>
异步编程之Javascript Promises 规范介绍
查看>>
EnumRemarkAttribute,获取属性值
查看>>
GCC扩展(转--对看kernel代码有帮助
查看>>
MVC3中使用RadioButtonFor()
查看>>
单元测试的概念
查看>>
Android特效 五种Toast详解
查看>>