3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class Gender { const UNKNOWN = 0; const MALE = 1; const FEMALE = 2; const NOT_APPLICABLE = 9; public static function from($value) { static $names; if ( ! $names) { $class = new ReflectionClass(self::class); $constants = $class->getConstants(); $names = array_keys($constants); } foreach ($names as $name) { if (constant(__CLASS__ . '::' . $name) === $value) { return $name; } } throw new InvalidArgumentException('No matching gender for value ' . $value); } // no instances allowed private function __construct() {} } echo Gender::from(Gender::FEMALE); ?>

preferences:
39.59 ms | 402 KiB | 5 Q