کار تابع mt_rand اینه که یک
عدد رو به صورت تصادفی انتخاب میکنه. و ممکنه در اجرا های متعدد ، این عدد تکرار بشه.
اما
کار تابع uniqid اینه که یک
رشته تصادفی
غیر تکراری رو ارائه میده. البته فکر میکنم اگر بخوایم منطقی بحث کنیم، متوجه خواهیم شد که به دست اوردن یک رشته ی غیر تکراری (در دنیا) غیر ممکنه. ولی خوب این تابع ، تا جای ممکن امکان اشتباه رو حذف کرده، من که تا حالا ازش اشتباهی ندیدم! حداقل میتونم تضمین کنم که روی یک سرور هیچ وقت یک رشته رو دو بار ارائه نمیکنه!
خوب طبیعتا وقتی ما میخوایم یک رشته ی غیرتکراری به دست بیاریم، با تعیین محدوده ی عبارت، داریم کاری میکنیم که از هدفمون ، یعنی "عدم تکرار" دور بشیم. پس طبیعتا برای رسیدن به یک رشته ی غیر تکراری ، تعیین محدوده بی معنیه.
فکر کنم دیگه نیازی به جواب سؤال هم نباشه
موفق باشید.