Генерация уникального идентификатора в PHP

Кажется, я нашел решение, и оно намного, намного чище, чем то, которое я изначально имел в виду.

class MyMetaSuper(type):
    pass

class MyObject:
    def __init__(self, t):
        self.t = t

    def __class_getitem__(cls, key):        
        class MyMeta(MyMetaSuper):
            t = key
            def __instancecheck__(self, instance):
                return isinstance(instance, cls) and self.t == instance.t

            def __subclasscheck__(self, subclass):
                return isinstance(subclass, MyMetaSuper) and self.t == subclass.t

        class MyObjectSpecific(MyObject, metaclass=MyMeta):
            pass

        return MyObjectSpecific

# Check for specific condition
assert isinstance(MyObject(0), MyObject[0])
# Make sure isinstance fails when condition fails
assert not isinstance(MyObject(0), MyObject[1])

# Test the generic object
assert isinstance(MyObject(0), MyObject)
15
задан Xenph Yan 8 October 2008 в 02:52
поделиться

2 ответа

string uniqid ([ string $prefix [, bool $more_entropy ]] )

Получает снабженный префиксом уникальный идентификатор на основе текущего времени в микросекундах.

USAGE: $id = uniqid(rand(), true);
18
ответ дан 1 December 2019 в 01:54
поделиться

uniqid () - то, что Вы ищете в большинстве практических ситуаций.

можно сделать это еще большим количеством "uniq" путем добавления большого случайного числа после него.

5
ответ дан 1 December 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: