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 @ 2016-08-24 15:38  demo_php  阅读(11449)  评论(2编辑  收藏  举报