uniqid()
関数は、13桁の長さの16進数を返します。php.netサイトの仕様によると、関数はmicrotime
一意の値を生成するために使用します。
ただしmicrotime
、次のように文字列形式で数値を返します。
"0.70352700 12689396875"
これは基本的にマイクロ秒と1970年から経過した秒数です。これは9+11桁の10進数です。
10進数の20を16進数に変換すると、13桁ではなく16桁の16進数になります。
「0」も出そうと思いました。決して変わらないように見える部分、および常に「00」のままであるように見えるマイクロ秒部分の最後の2桁。これを行うと、10進数の長さは9 + 11-3桁になりますが、16進数に変換したときに17桁の10進数は、13ではなく14桁の16進数になります。
別の方法で一意のIDを取得したり、より長い/短い一意のIDを取得したりすることに興味はありません。私は誰かがなぜuniqidが13桁しか返さないのかを知っているかどうかだけを尋ねています。
意味がないようです。uniqid
戻り値が。より1桁少ない場合はmicrotime
microtime
、。によって返された結果よりも一意の結果が得られることを意味しuniqid
ます。