如何在PHP中子类化Singleton?

mač*_*ček 6 php singleton design-patterns

我正在尝试子类化使用单例模式的类,并使用子类填充实例.

我好像有点麻烦.

class Singleton {

    static private $instance;

    static public function instance(){
        if(is_null(self::$instance)){
            self::$instance = new self();
        }
        return self::$instance;
    }

    private function __construct(){}

}

class MySingleton extends Singleton {

}

echo get_class(MySingleton::instance()); //=> Singleton

//=> I'm hoping to see MySingleton
Run Code Online (Sandbox Code Playgroud)

Mic*_*ior 8

您正在寻找的是后期静态绑定,这是PHP 5.3的一个新功能.尝试替换new self(),new static()这应该适合你.

self始终引用包含类,而static引用"被调用"类.