3v4l.org

run code in 300+ PHP versions simultaneously
<?php $fn = function () { return get_called_class(); }; var_dump((new ReflectionFunction($fn))->getClosureScopeClass()); class C { private static $test = 'In class C'; public function __construct() { $fn = function () { return get_called_class(); }; $res = (new ReflectionFunction($fn))->getClosureScopeClass(); var_dump(get_class($res)); var_dump($res->getName()); } public static function s_fn() { $fn = function () { var_dump(D::$test); return get_called_class(); }; $res = (new ReflectionFunction($fn))->getClosureScopeClass(); var_dump(get_class($res)); var_dump($res->getName()); var_dump(static::$test); return $fn; } } class D extends C { private static $test = 'In class D'; public function __construct() { } public static function test() { return static::s_fn(); } } $d = new D; $func = D::test(); var_dump($func());

preferences:
49.24 ms | 402 KiB | 5 Q