Я использую следующую функцию, она использует mt_rand
но есть шанс, я полагаю, что он может создать дубликат. Есть лучший способ сделать это?
sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
Если вы хотите создать реальный UUID v4 в PHP, тогда лучше всего использовать этот пакет — https://github.com/ramsey/uuid — это было тщательно проверено и используется многими другими пакетами.
Других решений пока нет …