MabeEnum\Enum::getByOrdinal PHP Method

getByOrdinal() final public static method

Get an enumeration instance by the given ordinal number
final public static getByOrdinal ( integer $ordinal ) : static
$ordinal integer The ordinal number or the enumerator
return static
    public static final function getByOrdinal($ordinal)
    {
        $ordinal = (int) $ordinal;
        $class = get_called_class();
        $constants = self::detectConstants($class);
        $item = array_slice($constants, $ordinal, 1, true);
        if (empty($item)) {
            throw new InvalidArgumentException(sprintf('Invalid ordinal number, must between 0 and %s', count($constants) - 1));
        }
        $name = key($item);
        if (isset(self::$instances[$class][$name])) {
            return self::$instances[$class][$name];
        }
        return self::$instances[$class][$name] = new $class(current($item), $ordinal);
    }