3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Test{ const SOMETHING = 1; private static $someMap; private $level; private $levelStr; private function Test($level, $levelStr){ $this->level = $level; $this->levelStr = $levelStr; } public static function getSomething(){ $cName = 'SOMETHING'; $sName = 'something'; self::setMap($cName,$sName); return self::$someMap[constant('Test::'.$cName)]; } public static function setMap($cName,$sName){ if(!isset(self::$someMap[constant('Test::'.$cName)])) { print "setting it"; self::$someMap['Test::'.$cName] = new Test('Test::'.$cName, $sName); } } } $lvl = Test::getSomething(); print_r($lvl);

preferences:
42.16 ms | 402 KiB | 5 Q