سلام. امروز در خدمت تون هستیم با بررسی تفاوت دو تابع mt_rand و rand در php.
پس با ما همراه باشید.
تابع rand و mt_rand دو تابعی هستند که در php وجود دارند و معمولا از آن ها برای تولید اعداد تصادفی استفاده میشود.
اما تفاوت این دو تابع چیست؟
همونطور که میدونید دو تا تابع rand و mt_rand کارایی یکسانی (در ظاهر) دارند و حتی نوع نوشتن و استفاده از این توابع مشابه یکدیگر است :
1 2 3 4 5 6 7 |
<?php rand($min, $max); mt_rand($min, $max); ?> |
اما این چیزی هست که در ظاهر قضیه ما اون رو میبینیم.
از آنجایی که تابع rand بسیار کند بود ، در PHP 7.1 تابع mt_rand() به جای تابع rand() معرفی شد.
تفاوت دو تابع mt_rand و rand در php
همونطور که مشخص هست تابع mt_rand جایگزین تابع rand میباشد که بنابر چیزی که خود php اعلام کرده اعداد تصادفی رو 4 برابر سریع تر از تابع rand ایجاد میکنه.
البته این سرعت به گونه ای نیست که در عملکرد سایت یا پروژه تون به شکل قابل توجهی مشخص باشه.
همچنین ایرادات دیگری نیز به تابع rand وارد بود.
برای مثال گفته شده که اگر ده عدد تصادفی ایجاد شده با تابع rand رو چاپ کنیم :
1 2 3 4 5 6 |
<?php for ($i=0;$i<10;++$i) echo rand(), PHP_EOL ."<br>"; ?> |
از خروجی به دست آمده میتونیم اعداد تصادفی بعدی رو پیش بینی کنیم. ابزارهایی هم برای این منظور ایجاد شده اند ، که میتونند این کار رو انجام بدند.
در کل تابع mt_rand برای رفع مشکلاتی که در تابع rand وجود داشت معرفی شد.
امیدوارم که این آموزش براتون مفید بوده باشه.
آموزش های دیگه ما رو در این زمینه می تونید در اینجا مشاهده کنید
در صورتی که سوالی داشتید ، در قسمت دیدگاه ها بیان کنید.
ما سعی می کنیم به سرعت به دیدگاه های شما پاسخ بدیم.
همچنین خوشحال میشیم نظرات تون رو در مورد سایت دات وب و آموزش های سایت با ما در میان بگذارید.
موفق باشید
گروه برنامه نویسی دات وب
</پایان>