3v4l.org

run code in 500+ PHP versions simultaneously
<?php class A { public static function getSelfInstance() : self { return new self(); } /** @return static */ public static function getStaticInstance(): self { return new static(); } } class B extends A {} var_dump(get_class(B::getSelfInstance())); var_dump(get_class(B::getStaticInstance()));

preferences:
44.76 ms | 1465 KiB | 5 Q