MabeEnum\Enum::get PHP Method

get() final public static method

Get an enumerator instance of the given value or instance
final public static get ( static | null | boolean | integer | float | string $value ) : static
$value static | null | boolean | integer | float | string
return static
    public static final function get($value)
    {
        if ($value instanceof static && get_class($value) === get_called_class()) {
            return $value;
        }
        $class = get_called_class();
        $constants = self::detectConstants($class);
        $name = array_search($value, $constants, true);
        if ($name === false) {
            $message = is_scalar($value) ? 'Unknown value ' . var_export($value, true) : 'Invalid value of type ' . (is_object($value) ? get_class($value) : gettype($value));
            throw new InvalidArgumentException($message);
        }
        if (!isset(self::$instances[$class][$name])) {
            self::$instances[$class][$name] = new $class($constants[$name]);
        }
        return self::$instances[$class][$name];
    }