3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { static $instance; public static function instance() { return static::$instance ?: ( static::$instance = new static() ); } public function foo() { var_dump($this); } } class B extends A { } class C extends A { static $instance; } A::instance()->foo(); B::instance()->foo(); C::instance()->foo();

preferences:
43.82 ms | 402 KiB | 5 Q