php __CLASS__get_class()与get_called_class()的区别

Posted EzrealR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php __CLASS__get_class()与get_called_class()的区别相关的知识,希望对你有一定的参考价值。

__CLASS__获取当前的类名,

get_class()与上面一样,都是获取当前的类名

get_called_class()获取当前主调类的类名

当涉及到继承时,在方法中使用类名。直接贴图了

MVC框架中,涉及到单例时很好用,一般在基类中

复制代码
    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];
    }
复制代码

其他类只要继承这个类,然后通过getInstance()就实现了单例模式

以上是关于php __CLASS__get_class()与get_called_class()的区别的主要内容,如果未能解决你的问题,请参考以下文章

php 怎么获取当前函数名称 ?

获取父类名称? [复制]

与类有关的魔术常量

PHP浅谈__construct()的继承与调用

php get_called_class()函数与get_class函数的区别

PHP魔术方法之__call与__callStatic方法