mt_rand() 採用 Mersenne Twister 演算法,速度比舊版 rand() 快 4 倍,且隨機品質更好,是產生隨機整數的首選函式。
mt_rand(min, max)
mt_getrandmax() 之間的偽隨機數。min、max:回傳該範圍內整數 (含邊界)。// 產生 5~15 之間隨機整數
$num = mt_rand(5, 15); // 隨機挑選陣列元素
$colors = ['red','green','blue','yellow'];
$color = $colors[mt_rand(0, count($colors)-1)]; // 簡單抽獎邏輯
$rand = mt_rand(0, 1);
if ($rand === 0) {
$prizes = [41,20,26,29,30];
} else {
$prizes = [38,42,37,400,444];
}
foreach ($prizes as $v) { echo $v . "\n"; }
mt_rand() 非密碼學安全,不可用於金鑰、Token、驗證碼。PHP 7+ 請改用:
random_int($min, $max) — 整數random_bytes($length) — 位元組串流PHP 3.0.7 前 max 代表「範圍長度」而非上界,例如要 5~15 需寫 mt_rand(5, 11)。現代版本已統一為上界含義。