mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_randGenerate a random value via the Mersenne Twister Random Number Generator

Descrizione

mt_rand(): int
mt_rand(int $min, int $max): int

Many random number generators of older libcs have dubious or unknown characteristics and are slow. The mt_rand() function is a drop-in replacement for the older rand(). It uses a random number generator with known characteristics using the » Mersenne Twister, which will produce random numbers four times faster than what the average libc rand() provides.

If called without the optional min, max arguments mt_rand() returns a pseudo-random value between 0 and mt_getrandmax(). If you want a random number between 5 and 15 (inclusive), for example, use mt_rand(5, 15).

Attenzione

Questa funzione non genera valori crittograficamente sicuri, e non dovrebbe essere usata per scopi di crittografia. Se c'è necessità di utilizzare un valore crittograficamente sicuro, si preferisca openssl_random_pseudo_bytes().

Attenzione

This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937. Using any of these functions advances the sequence for all the other functions, regardless of scope.

Generating repeatable sequences by seeding mt_srand() or srand() with a known value will also yield repeatable output from this function.

Prefer using Random\Randomizer methods in all newly written code.

Elenco dei parametri

min

Optional lowest value to be returned (default: 0)

max

Optional highest value to be returned (default: mt_getrandmax())

Valori restituiti

A random integer value between min (or 0) and max (or mt_getrandmax(), inclusive).

Errori/Eccezioni

  • If max is less than min, a ValueError will be thrown.

Log delle modifiche

Versione Descrizione
8.0.0 A ValueError will be thrown if max is less than min; previously an E_WARNING was raised, and the function returned false.
7.2.0 mt_rand() has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
7.1.0 rand() has been made an alias of mt_rand().
7.1.0 mt_rand() has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand() with MT_RAND_PHP as the second parameter.

Esempi

Example #1 mt_rand() example

<?php
echo mt_rand(), "\n";
echo
mt_rand(), "\n";

echo
mt_rand(5, 15), "\n";
?>

Il precedente esempio visualizzerà qualcosa simile a:

1604716014
1478613278
6

Note

Avviso

min max range must be within the range mt_getrandmax(). i.e. (max - min) <= mt_getrandmax() Otherwise, mt_rand() may return poorer random numbers than it should.

Vedere anche:

add a note

User Contributed Notes 1 note

To Top