В PHP, как вычислить случайное число?
Как вычислить случайное число между 1 и 2000 с помощью PHP, чтобы сделать розыгрыш?
function random() {
// codigo
}
4 answers
Используйте функцию mt_rand
$numero = mt_rand(1, 2000);
echo $numero;
Функции mt_rand() и rand() генерируют чисел псевдослучайных, сгенерированные числа, эти функции являются предсказуемыми.
В Качестве альтернативы вы можете использовать функцию openssl_random_pseudo_bytes() (Английский):
Generates a string of pseudo-random bytes, with the number of bytes определить наличие by the length parameter.
Перевод:
Создает последовательность псевдо-случайных байтов, с число байт определяется с помощью параметра
length
.
Например
<?php
function random($min, $max) {
$range = $min - ($max + 1);
if($range === 0) {
return $min;
}
$len = (int)(log(abs($range), 2) / 8) + 1;
$num = hexdec(bin2hex(openssl_random_pseudo_bytes($len)));
return ($min + ($num % $range));
}
, лучший вариант, в PHP 7 (или выше), использовать random_int
:
random_int($menor_numero , $maior_numero);
И $menor_numero и $maior_numero включают в себя сами, поэтому использовать:
random_int(0 , 1);
Выдаст число 1
, 0
. В вашем случае, используйте random_int(1, 2000)
, уже который хочет что-то между 1 (том 1) и 2000 (в том числе 2000).
Предельный минимальный и максимальный определяется константой: PHP_INT_MIN
и PHP_INT_MAX
, который зависит от платформы.
random_int
это "криптографически безопасный", в отличие от mt_rand
rand
.