W3docs

getrandmax()

Scopri la funzione getrandmax() in PHP, usata per ottenere il valore casuale massimo generabile con la funzione rand().

La funzione PHP getrandmax() restituisce il numero intero più grande che la funzione rand() può produrre quando viene chiamata senza argomenti. Conoscere questo limite superiore permette di scalare in modo sicuro i valori casuali nel proprio intervallo, motivo per cui getrandmax() è più utile insieme a rand() piuttosto che da sola.

Sintassi

getrandmax(): int

getrandmax() non accetta nessun parametro e restituisce un int. Nelle versioni moderne di PHP (7.1 e successive) restituisce sempre 2147483647 (il valore massimo di un intero con segno a 32 bit, 2^31 - 1), indipendentemente dal sistema operativo o dall'architettura. Prima di PHP 7.1 il valore poteva differire tra le piattaforme, ed è per questo che la famiglia mt_rand(), più portabile, è ora preferita.

Come usare getrandmax()

Poiché non richiede argomenti, la chiamata alla funzione è semplice:

php— editable, runs on the server

Questo stampa 2147483647 su un'installazione PHP moderna.

Scalare rand() in un intervallo personalizzato

L'uso pratico principale di getrandmax() è convertire l'output di rand() in una frazione o in un intervallo più piccolo. Dividendo rand() per getrandmax() si ottiene un float tra 0 e 1, che può essere moltiplicato per adattarsi a qualsiasi intervallo desiderato:

<?php
// A random float between 0 and 1
$fraction = rand() / getrandmax();

// Scale that fraction into the range 0–100
$scaled = $fraction * 100;

echo "Fraction: " . ($fraction >= 0 && $fraction <= 1 ? "in [0, 1]" : "out of range") . "\n";
echo "Scaled value is between 0 and 100: " . ($scaled >= 0 && $scaled <= 100 ? "yes" : "no") . "\n";
?>

Qui l'output conferma che la frazione rimane all'interno di [0, 1] e il valore scalato all'interno di [0, 100]. Poiché i numeri esatti sono casuali, verificare l'intervallo (anziché un valore fisso) è il modo affidabile per controllare la logica.

getrandmax() vs. mt_getrandmax()

In PHP 7.0+, rand() e mt_rand() condividono lo stesso generatore di numeri casuali sottostante, quindi getrandmax() e mt_getrandmax() restituiscono lo stesso valore. Per il nuovo codice, è preferibile usare:

  • mt_rand() per numeri pseudo-casuali più veloci e di qualità superiore.
  • random_int() quando sono necessari valori crittograficamente sicuri (password, token, codici di sicurezza).

Ricorrere a rand() e getrandmax() ha senso principalmente quando si lavora con codice legacy che li utilizza già.

Conclusione

La funzione getrandmax() riporta il limite superiore di rand(), un valore fisso di 2147483647 nelle versioni moderne di PHP. Il suo vero valore risiede nell'uso come denominatore quando si scalano interi casuali in float o intervalli personalizzati. Per i nuovi progetti, è preferibile la famiglia mt_rand() o random_int() per la casualità sensibile alla sicurezza.

Esercitazione

Pratica
Qual è lo scopo della funzione getrandmax() in PHP?
Qual è lo scopo della funzione getrandmax() in PHP?
Was this page helpful?