{ var_dump($this); } } class Foo extends Singleton { } class Bar extends Singleton { } class Baz extends Bar { } $u = Foo::getInstance(); $v = Bar::getInstance(); $w = Baz::getInstance(); $u->identify(); $v->identify(); $w->identify(); $x = Foo::getInstance(); $y = Bar::getInstance(); $z = Baz::getInstance(); $u->identify(); $v->identify(); $w->identify(); $x->identify(); $y->identify(); $z->identify(); ?> ===DONE===
public function __destruct() { Bar::getInstance(); }
<?php class Foo { public static function getInstance() : self { return new static(); } } class Bar extends Foo { } var_dump(Foo::getInstance()); var_dump(Bar::getInstance());