3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface A { const NONE = 0; } abstract class B implements A { protected static $values; public static function get() { if (null === static::$values) { $r = new \ReflectionClass(get_called_class()); static::$values = $r->getConstants(); } return static::$values; } } class C extends B { const BLA = 1; } class D extends B { const BLAHA = 1; } var_dump(C::get()); var_dump(D::get());

preferences:
33.89 ms | 402 KiB | 5 Q