PHP が内部で既製の乱数メソッドを提供しているため、PHP が乱数を生成する方法は非常に簡単です。したがって、追加の構成を実行する必要はなく、内部メソッドを呼び出すだけで済みます。
php の乱数関数は次のとおりです:
1. rand 関数
rand() 関数はパラメータを追加せずにランダムな整数を生成できます。乱数の範囲を設定したい場合は、関数内でminとmaxの値を設定できます。乱数シードを生成する必要がある場合は、srand 関数構成を使用します。
echo rand(); // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 32767,RAND_MAX 可以用函数 getrandmax() 获得 echo rand(1000000, 9999999); // 生成 1000000~9999999 之间的随机数 $seed = time(); // 使用时间作为种子源 srand($seed); // 播下随机数发生器种子 echo rand(); // 根据种子生成 0~32768 之间的随机数。如果 $seed 值固定,则生成的随机数也不变 echo rand(1000000, 9999999); // 根据种子生成 1000000~9999999 之间的随机数。如果 $seed 值固定,则生成的随机数也不变
2. mt_rand 関数
mt_rand() は、メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。 rand() 関数との主な違いは次のとおりです。
mt_rand()乱数を生成します。数値は libc が提供する rand() よりも平均して 4 倍高速であり、シード関数は srand() の代わりに mt_srand() を使用します。この違いはありますが、使用方法は次のように似ています。
echo mt_rand(); // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 2147483647(与rand()中的 RAND_MAX 不同),RAND_MAX 可以用函数 mt_getrandmax() 获得 echo mt_rand(1000000, 9999999); // 生成 1000000~9999999 之间的随机数,不受系统 RAND_MAX 影响 $seed = time(); // 使用时间作为种子源 mt_srand($seed); // 播下随机数发生器种子 echo rand(); // 根据种子生成 0~RAND_MAX 之间的随机数,如果 $seed 值固定,则生成的随机数也不变 echo rand(1000000, 9999999); // 根据种子生成 1000000~9999999 之间的随机数,如果 $seed 值固定,则生成的随机数也不变
注: rand() と mt_rand() によって生成される乱数はすべて整数であり、英語の文字は含まれません。
(関連する推奨事項: php チュートリアル )
3. uniqid 関数
uniqid() 関数は一意の ID を生成します。デフォルトで生成される ID の長さは 13 桁または 23 桁で、英語の文字と数字で構成されます。 uniqid() 関数には 2 つのパラメータがあり、形式は次のとおりです:
uniqid(prefix,more_entropy)
そのうち、
prefix: IDのPrefixを生成
more_entropy: エントロピーを追加するかどうか
次の手順、
echo uniqid(); // 生成13位字符串,如:55f540e273e93 echo uniqid('one.'); // 生成前缀为one.加13位随机字符的字符串,如:one.55f540e273e93 echo uniqid('two.', true); // 生成前缀为two.加23位随机字符的字符串(加了熵),如:two.55f540e273e932.77804707,比上面的多了 10 位,即多了:2.77804707
説明: システム上の都合により、この機能で生成されるIDが最適ではない場合があります。完全に一意の ID を生成するには、md5() 関数を使用します。
学習ビデオ共有: php ビデオ チュートリアル
元のリンク: https://www.awaimai.com/216.html
以上がPHPで乱数を生成するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。