Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
random_int
(PHP 7)
random_int — Generates cryptographically secure pseudo-random integers
Описание
int random_int ( int $min , int $max )Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.
The sources of randomness used for this function are as follows:
- On Windows, » CryptGenRandom() will always be used.
- On Linux, the » getrandom(2) syscall will be used if available.
- On other platforms, /dev/urandom will be used.
- If none of the aforementioned sources are available, then an Exception will be thrown.
Замечание: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.
Список параметров
min
- The lowest value to be returned, which must be PHP_INT_MIN or higher.max
- The highest value to be returned, which must be less than or equal to PHP_INT_MAX.Возвращаемые значения
Returns a cryptographically secure random integer in the range min to max, inclusive.
Ошибки
- If an appropriate source of randomness cannot be found, an Exception will be thrown.
- If invalid parameters are given, a TypeError will be thrown.
- If max is less than min, an Error will be thrown.
Примеры
Пример #1 random_int() example
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
Результатом выполнения данного примера будет что-то подобное:
int(248)
int(-898)
Смотрите также
- random_bytes() - Generates cryptographically secure pseudo-random bytes
This function is based on Andrew Moore's UUID generation function on the uniqid function; it has been updated to use random_int() on PHP 7.0 or later yet continue to function with earlier versions using mt_rand().
function generateUUIDv4()
{
if(version_compare(PHP_VERSION,'7.0.0', '<') )
{
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
// 32 bits for "time_low"
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
// 16 bits for "time_mid"
mt_rand(0, 0xffff),
// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 4
mt_rand(0, 0x0fff) | 0x4000,
// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
mt_rand(0, 0x3fff) | 0x8000,
// 48 bits for "node"
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
}
else
{
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
// 32 bits for "time_low"
random_int(0, 0xffff), random_int(0, 0xffff),
// 16 bits for "time_mid"
random_int(0, 0xffff),
// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 4
random_int(0, 0x0fff) | 0x4000,
// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
random_int(0, 0x3fff) | 0x8000,
// 48 bits for "node"
random_int(0, 0xffff), random_int(0, 0xffff), random_int(0, 0xffff)
);
}
}
Описание на ru2.php.net
Описание на php.ru