LINUX.ORG.RU

История изменений

Исправление Obezyan, (текущая версия) :

Мне понравился вариант как сделали Enumeration в языке Swift. Много, что вы хотели бы видеть там из коробки.

В PHP пошли еще дальше и разделили Enum на pure (обычный) и baked с запеченными индексами кейсов, причем индексы могут быть не только int, но и string. Обращение к индексу идет через value:

enum Users: string
{
    case Monk      = 'lisp';
    case Morkovka  = 'cpp';    
    case Necromant = 'swift';
    case Obezyan   = 'php';
}

print Users::Necromant->value;
// swift

Исправление Obezyan, :

Мне понравился вариант как сделали Enumeration в языке Swift. Много, что вы хотели бы видеть там из коробки.

В PHP пошли еще дальше и разделили Enum на pure (обычный) и baked с запеченными индексами кейсов, причем индексы могут быть не только int, но и string. Обращение к индексу идет через value:

enum Users: string
{
    case Monk = 'lisp';
    case Morkovka = 'cpp';    
    case Necromant = 'swift';
    case Obezyan = 'php';
}

print Users::Necromant->value;
// swift

Исправление Obezyan, :

Мне понравился вариант как сделали Enumeration в языке Swift. Много, что вы хотели бы видеть там из коробки.

В PHP пошли еще дальше и разделили Enum на pure (обычный) и baked с запеченными индексами кейсов, причем индексы могут быть не только int, но и stringю Обращение к индексу идет через value:

enum Users: string
{
    case Monk = 'lisp';
    case Morkovka = 'cpp';    
    case Necromant = 'swift';
    case Obezyan = 'php';
}

print Users::Necromant->value;
// swift

Исходная версия Obezyan, :

Мне понравился вариант как сделали Enumeration в языке Swift. Много, что вы хотели бы видеть там из коробки.

В PHP пошли еще дальше разделили Enum на pure (обычный) и baked с запеченными индексами кейсов, причем индексы могут быть не только int, но и stringю Обращение к индексу идет через value:

enum Users: string
{
    case Monk = 'lisp';
    case Morkovka = 'cpp';    
    case Necromant = 'swift';
    case Obezyan = 'php';
}

print Users::Necromant->value;
// swift