【PHP8.x】srand関数の使い方
作成日: 更新日:
srand関数は、乱数生成器のシード(種)を初期化する関数です。コンピュータが生成する乱数は、実際には特定の計算アルゴリズムによって生成される「擬似乱数」であり、その計算の出発点となる値が「シード」です。srand
関数でシード値を設定すると、その後にrand
関数で取得される乱数の系列が固定されます。つまり、同じシード値を指定すれば、プログラムを何度実行しても常に同じ順番で同じ乱数が生成されるようになります。この性質は、デバッグの際など、乱数を使用した処理の結果を正確に再現したい場合に非常に役立ちます。引数にはシードとして使用したい整数値を渡します。なお、PHP 7.1.0以降では、rand
関数が初めて呼び出される際に自動的にシードが設定されるため、通常はsrand
関数を明示的に呼び出す必要はありません。現在では、より性能が高く、より良質な乱数を生成するmt_srand
関数とmt_rand
関数の使用が推奨されています。そのため、srand
関数は、古いコードとの互換性を保つ必要がある場合や、意図的に乱数の再現性を確保したいといった特殊な状況でのみ使用されるのが一般的です。
基本的な使い方
構文(syntax)
srand(123);
引数(parameters)
?int $seed = null, int $mode = MT_RAND_MT19937
- ?int $seed = null: 乱数生成器のシード値を指定します。省略した場合、システム時刻などによって自動的に設定されます。
- int $mode = MT_RAND_MT19937: 乱数生成に使用するアルゴリズムを指定します。MT_RAND_MT19937 は Mersenne Twister アルゴリズムです。
戻り値(return)
void
srand関数は、乱数生成器のシード値を設定します。この関数は値を返しません。