【PHP8.x】uniqid関数の使い方

作成日: 更新日:

uniqid関数は、現在時刻に基づいた一意なID(識別子)を生成する関数です。主に、データベースの主キーのような厳密な一意性が必要な場面ではなく、ファイル名、セッションID、一時的な識別子など、簡潔で重複しにくいIDが必要な状況で利用されます。この関数は、現在のマイクロ秒を基にIDを生成するため、非常に高速に動作します。

引数として、オプションでprefixmore_entropyを受け取ります。prefixは、生成されるIDの先頭に追加される文字列です。これを指定することで、IDの用途を識別しやすくなるだけでなく、IDの一意性をさらに向上させることができます。例えば、異なる種類のIDに異なるプレフィックスを付けることが可能です。

more_entropytrueに設定すると、システムの高精度な乱数生成器が用いられ、よりエントロピーの高い(すなわち、より重複しにくい)IDが生成されます。この場合、返されるIDは浮動小数点数を含む文字列となり、より長い形式になります。デフォルトではfalseに設定されており、より短くシンプルなIDが生成されます。

uniqid関数によって生成されるIDは、特定の環境下(例えば、同じマイクロ秒内に何度も関数を呼び出す場合)では重複する可能性がゼロではありませんが、ほとんどの一般的な用途において十分な一意性を提供します。返り値は、生成された一意のIDを表す文字列です。

基本的な使い方

構文(syntax)

uniqid(?string $prefix = null, bool $more_entropy = false): string

引数(parameters)

string $prefix = "", bool $more_entropy = false

  • string $prefix = "": 生成されるIDの先頭に付加される文字列。デフォルトは空文字列です。
  • bool $more_entropy = false: より高いエントロピー(予測不可能性)を持つIDを生成するかどうかを指定するブール値。trueにすると、よりユニークなIDが生成されます。

戻り値(return)

string

ユニークなIDを文字列で生成して返します。

【PHP8.x】uniqid関数の使い方 | いっしー@Webエンジニア