3v4l.org

run code in 500+ PHP versions simultaneously
<?php class XABC { function foo() { // static does not apply to self $f = static function () : self { // __CLASS__ is preserved in the closure echo __CLASS__.PHP_EOL; return new self(); }; return $f; } } var_dump((new xabc)->foo()());
Output for 8.1.34, 8.2.0 - 8.2.32, 8.3.0 - 8.3.32, 8.4.1 - 8.4.23, 8.5.0 - 8.5.8
XABC object(XABC)#1 (0) { }

preferences:
46.12 ms | 880 KiB | 4 Q