0

PHPのドキュメントで、私はこのメモを見つけました:

32ビットシステムと64ビットシステム(OS XとLinux)の両方で、mt_getrandmax()は2147483647を返します。

提供されている簡単な機能を使用してこれを確認しました

function gethighest()
{
return mt_getrandmax();
}
$hello = gethighest();
echo '<b>'.$hello.'</b>';

このスニペットを使用して一意のIDを生成しています

$number = mt_rand(163245,978534);
$unique_id = crypt($number);
echo md5($unique_id).'<br/>';

私の質問は、mt_randの最大値を持つとはどういう意味ですか?最大値に達するとIDが繰り返され始めますか?

4

3 に答える 3

2

あなたのコード:

$number = mt_rand(163245,978534); 

生成される数値がこれらの2つの数値の間にあることを意味します。実行する回数だけ、これらの2つの値の間に数値が生成されます。戻り値がその範囲外になることはありません。しかし、はい、値を繰り返すことができます。

たとえば、mt_rand(1,5)で試して、20回実行して出力するように指示します。

于 2012-07-05T09:55:20.537 に答える
1

uniqidの使用を検討しますか?http://php.net/manual/en/function.uniqid.php

于 2012-07-05T09:56:13.687 に答える
1

一意のIDを生成する場合は、次を使用する必要がありますuniqid

$unique_id = uniqid(microtime(true));
于 2012-07-05T09:57:42.947 に答える