(PHP 4, PHP 5, PHP 7)
rand — Erzeugt eine zufällige Zahl
$min
, int $max
) : int
Liefert eine Pseudozufallszahl zwischen min
und max
(inklusive), oder zwischen 0
und getrandmax(), falls keine Parameter angegeben wurden.
Wenn Sie z.B. einen Zufallswert zwischen 5 und 15 benötigen
so wäre der Aufruf dafür rand(5, 15).
Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.
Hinweis: Auf manchen Plattformen (z.B. Windows) ist getrandmax() nur 32767. Wenn sie einen größeren Wertebereich benötigen sollten, so können Sie entweder einen größeren
max
-Wert übergeben oder besser die mt_rand()-Funktion anstelle von rand() einsetzen.
Hinweis: Ab PHP 7.1.0 verwendet rand() denselben Zufallszahlengenerator wie mt_rand(). Um die Abwärtskompatibilität zu wahren, erlaubt rand(), dass
max
kleiner alsmin
ist, ohne wie mt_rand()FALSE
zurückzugeben.
min
Der niedrigste zurückzugebende Wert (Vorgabe: 0)
max
Der höchste zurückzugebende Wert (Vorgabe: getrandmax())
Ein Pseudozufallswert zwischen min
(oder 0) und max
(oder getrandmax(), inklusive).
Version | Beschreibung |
---|---|
7.2.0 | rand() erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich von PHP 7.1 auf 64-bit Rechnern unterscheiden können. |
7.1.0 | rand() wurde zu einem Alias von mt_rand(). |
Beispiel #1 rand()-Beispiel
<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
7771 22264 11
Der Bereich zwischen
min
und max
muss innerhalb von
getrandmax() liegen; d.h. (max
-
min
) <= getrandmax(); ansonsten wird
rand() möglicherweise Zufallszahlen schlechter Qualität zurückgeben.