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()就实现了单例模式

posted @ 2017-09-05 14:06  EzrealR  阅读(412)  评论(0编辑  收藏  举报