PHP实现单件模式的几种方式
发布日期:2021-09-20 08:07:36 浏览次数:45 分类:技术文章

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

下面是单件模式在PHP中的几种实现方法:

class Stat{    static $instance = NULL;       static function getInstance(){        if(self::$instance == NULL){            self::$instance = new Stat();        }               return self::$instance;    }       private function __construct(){    }       private function __clone(){    }          function sayHi(){        return "The Class is saying hi to u ";    }}echo Stat::getInstance()->sayHi();

这是一种最通常的方式,在一个getInstance方法中返回唯一的类实例。

对这里例子稍加修改,便可以产生一个通用的方法,只要叫道任何你想用到单件的类里,就可以了。

class Teacher{    function sayHi(){        return "The teacher smiling and said 'Hello '";    }       static function getInstance(){        static $instance;               if(!isset($instance)){            $c = __CLASS__;            $instance = new $c;        }               return $instance;    }}echo Teacher::getInstance()->sayHi();
最后一种是提供一个singleton类,然后通过调用getInstance方法,可以为任何一个类生产出一个实例来。

class singleton{    function getInstance($class){        static $instances = array();        if(!array_key_exists($class,$instances)){            $instances[$class] = &new $class;        }        $instance = $instances[$class];               return $instance;    }}class People{    function sayHi(){        return 'Hello i am a people?';    }}echo "
";echo singleton::getInstance('People')->sayHi();

转载地址:https://blog.csdn.net/caiyiii/article/details/17078247 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:centos truncate not found
下一篇:清理mysql日志

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月23日 04时10分36秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

POJ 1125 Stockbroker Grapevine 弗洛伊德算法 2019-04-26
UVA-512 Spreadsheet Tracking【STL大法好】+(带你了解Vector相关方法+模板归纳) 2019-04-26
C++ 【蓝书】网络流问题(网络流基础概念+三个算法+做题时的选择+模板整合)【网络流从入门到放弃】 2019-04-26
HDU 2809 God of War 【DP+状态压缩】 (战神吕布打怪升级+状态压缩详解+模板嵌套+二进制画图分析) 2019-04-26
C++ 【蓝书】网络流问题(例题HDU 1532+三个算法+做题时的选择+模板整合)【网络流从入门到放弃】 2019-04-26
C++ HNUCM-OJ 最大字段和相关问题 【模板归纳】+(求出最大子段和,以及子段的起始位置和结束位置 )+(时间复杂度O( n)) 2019-04-26
轻松保存扣扣闪照!是的,闪照保存!很简单!学不会扣眼珠子! 2019-04-26
ATM机等待时间详细代码和解释 2019-04-26
我在pip安装tensorflow时遇到 ERROR: Cannot uninstall ‘wrapt‘. It is a distutils installed project and thu2 2019-04-26
tensorfolw很多的函数不能使用,具体解决方法: 2019-04-26
html静态网页实例一(附完整代码) 2019-04-26
html静态网页实例二(附完整代码) 2019-04-26
Turtle入门一 2019-04-26
爬取去哪儿网酒店信息 2019-04-26
C++判断素数详细讲解与代码 2019-04-26
C++求阶层和 2019-04-26
pygame安装问题 2019-04-26
python画一个可爱的皮卡丘(完整代码) 2019-04-26
Python编程实现BP算法,在西瓜数据集上训练一个单隐层网络(方法一,四个方法,我四篇发布,附完整代码和数据集,) 2019-04-26
Python编程实现BP算法,在西瓜数据集上训练一个单隐层网络(方法二,附带完整代码) 2019-04-26