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

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

下面是单件模式在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日志

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2023年02月07日 17时35分37秒

关于作者

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

最新文章