ランダム性を実装する php 関数は次のとおりです: 1. rand() (ランダムな整数を生成できます); 2. mt_rand(); 3. array_rand() (配列内のランダムなキー名を返すことができます); 4. shuffle()、配列をランダムにシャッフルできます; 5. str_shuffle(); 6. uniqid()。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
PHP のランダム関数には主に rand、mt_rand が含まれます、 array_rand のほか、ランダムに「配置」された (シャッフルされた) 関数 shuffle および str_shuffle もあり、これらは一意の ID を持つ uniqid を生成できます。
1. rand は乱数を生成します
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) { $random.=$base[rand(0,$count-1)]; } echo $random; ?>
rand() 関数は libc の乱数生成器を使用して乱数を生成します。一般に遅くて不確実です。代わりに mt_rand 関数を使用することをお勧めします。
getrandmax() 関数は、rand 関数が生成できる最大の乱数を返すことができるため (私のシステムは 32767)、rand 関数の 2 番目のパラメーターを設定するときは、getrandmax の戻り値を超えないようにしてください。
2. mt_rand は乱数を生成します
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $count = strlen($base); $random = ''; for ($i=0; $i < 16; $i++) { $random.=$base[mt_rand(0,$count-1)]; } echo $random; ?>
古い libc 乱数ジェネレーターの多くは、不確実で未知の特性を備えており、非常に遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、乱数生成器として » Mersenne Twister の既知の機能を使用しており、libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。開発中は rand の代わりに mt_rand 関数を使用することを強くお勧めします。
オプションのパラメータ min と max が指定されていない場合、mt_rand() は 0 から mt_getrandmax() までの擬似乱数を返します。たとえば、3 ~ 20 (両端を含む) の範囲の乱数が必要な場合は、mt_rand(3, 20) を使用します。
3. array_rand 関数
<?php $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); $random = ''; for ($i=0; $i < 16; $i++) { $random.=$base[array_rand($base)]; } echo $random; ?>
array_rand は配列内のランダムなキー値を返しますが、これは mt_rand() 関数に似ています。柔軟に使えます。
4. shuffle 関数
<?php $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); if(shuffle($base)){ print_r($base); } ?>
shuffle 関数は、配列の順序を少しランダムに崩す関数で、ここではランダム関数の中に入れています。戻り値は bool 値で、元の変数を直接参照するのと同じです。
5. str_shuffle 関数
<?php $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; echo str_shuffle($base); ?>
ここでの str_shuffle の関数は shuffle の関数と似ています。唯一の違いは戻り値です。str_shuffle の元の文字列は残ります。変わらない。
6. uniqid 関数
<?php echo uniqid(); //54f806528172f ?>
uniqid は一意の文字列を生成でき、このアプリケーションの適用範囲は非常に広い可能性があります
推奨学習: " PHP ビデオ チュートリアル>>
以上がPHPでランダム性を実装する関数は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。