(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.