rand($min, $max):傳統隨機數,Windows 下 RAND_MAX 僅 32767;mt_rand($min, $max):採用 Mersenne Twister 演算法,速度較快、週期極長(2^19937-1),mt_getrandmax() 回傳 2147483647。| 測試輪次 | rand() 耗時(秒) | mt_rand() 耗時(秒) | 勝者 |
|---|---|---|---|
| 1 | 0.259 | 0.286 | rand() |
| 2 | 0.311 | 0.290 | mt_rand() |
| 3 | 0.275 | 0.271 | mt_rand() |
| 4 | 0.263 | 0.277 | rand() |
rand() 尚未改用較好演算法;mt_rand();rand() 亦可;random_int()、openssl_random_pseudo_bytes()。PHP 4.2.0 起 srand()/mt_srand() 自動播種,無需手動呼叫。手動播種反而可能降低隨機品質(如固定種子導致可預測)。