首页 > 后端开发 > php教程 > 【PHP】几种方式实现类名获取以及实现单例模式

【PHP】几种方式实现类名获取以及实现单例模式

little bottle
发布: 2023-04-06 09:02:01
原创
2910 人浏览过

今天小编将带大家学习一下用PHP实现类名获取以及实现单例模式,具有一定的参考价值,感兴趣的朋友可以了解一下!

获取类名的几种方式

1.__CLASS__:获取当前的类名

2.get_class():返回对象的类名

3.get_called_class():后期静态绑定("Late Static Binding")类的名称,即静态方法调用者的类名

<?php

class foo {
    static public function test() {
        echo "foo.__CLASS__:".__CLASS__."\n";
        echo "foo.get_class:".get_class()."\n";
        echo "foo.get_called_class:".get_called_class()."\n";
    }
}

class bar extends foo {
    
}

foo::test();
echo "\n";
bar::test();
?>
登录后复制

结果:

//结果
foo.__CLASS__:foo
foo.get_class:foo
foo.get_called_class:foo

foo.__CLASS__:foo
foo.get_class:foo
foo.get_called_class:bar
登录后复制

单例模式:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

<?php

//通过get_called_class实现单例模式

class Singleton{
   
   private static $instance; 
  
    public static function getInstance() {  //静态共有方法实例化对象
        $class_name = get_called_class();
        if (isset(self::$instance[$class_name])) {
            return self::$instance[$class_name];
        }
        self::$instance[$class_name] = new $class_name;
        return self::$instance[$class_name];
    }
}
?>
登录后复制

 相关教程:PHP视频教程

以上是【PHP】几种方式实现类名获取以及实现单例模式的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板