PHP Extending class makes children inherit same static property
问题 I'd like to start by showing a test case: class A { public static $instance=null; public function __construct(){ self::$instance=$this; } public function className(){ return get_class(self::$instance); } } class B extends A { public function className(){ return get_class(self::$instance); } } // test code $b=new B(); echo $b->className; // B $a=new A(); echo $a->className; // A echo $b->className; // A <- error: not B any more! Notes I'm using a factory+singleton patterns above. Well,