【PHP8.x】MT_RAND_PHP定数の使い方
MT_RAND_PHP定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
MT_RAND_PHP定数は、PHPの乱数生成において、メルセンヌ・ツイスターアルゴリズムのPHP独自の実装を表す定数です。
この定数は、主にPHP 7.1以降で導入されたrandom_int()関数やrandom_bytes()関数などで、乱数生成に利用するアルゴリズムを指定する際に使用されます。具体的には、これらの関数の引数$modeにMT_RAND_PHPを指定することで、PHP 7.1より前のmt_rand()関数が使用していた、メルセンヌ・ツイスター法に基づく乱数生成器が利用されます。これにより、以前のバージョンのPHPにおけるmt_rand()と同じ特性を持つ乱数を、より新しい乱数生成インターフェースを通じて生成することが可能になります。
PHPの乱数生成機能は多様であり、目的に応じて使い分けが必要です。MT_RAND_PHPが示す乱数生成器は、予測可能性があり、統計的な均一性には優れていますが、暗号学的に安全な乱数ではありません。そのため、セキュリティを要求される場面、例えばパスワードの生成やトークンの発行などには、この定数を用いるべきではありません。そのような用途では、random_int()関数のデフォルトの動作(MT_RAND_PHPを指定しない場合)や、オペレーティングシステムが提供する、より強力な乱数源を利用するモードを選択することが強く推奨されます。MT_RAND_PHPは、主に既存のコードとの互換性を維持したい場合や、セキュリティが不要な非クリティカルな用途で、特定の乱数分布が必要な場合に利用されることを想定しています。
構文(syntax)
1<?php 2mt_srand(12345, MT_RAND_PHP); 3echo mt_rand(1, 100);
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
MT_RAND_PHPは、PHPの標準的な疑似乱数生成器(mt_rand()関数)ではなく、PHP自身で実装された乱数生成器を使用することを示す整数定数です。この定数は、mt_rand()関数の第3引数として指定されることがあります。