(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Erzeugt eine zufällige Zahl
Gibt eine Pseudozufallszahl zwischen min
und
max
(inklusive) zurück oder zwischen 0 und
getrandmax(), falls keine Parameter angegeben wurden.
Wenn z. B. ein Zufallswert zwischen 5 und 15 benötigt wird, so wäre der
Aufruf dafür rand(5, 15)
.
Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein dürfen.
Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die den CSPRNG des Betriebssystems verwendet.
Hinweis: Auf manchen Plattformen (z. B. Windows) ist getrandmax() nur 32767. Wenn ein größerer Wertebereich benötigt wird, kann entweder ein größerer
max
-Wert übergeben werden oder es kann stattdessen die Funktion mt_rand() verwendet werden.
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 sich Folgen mit einem bestimmten Startwert ab PHP 7.1 auf 64bit-Rechnern unterscheiden können. |
7.1.0 | rand() ist nun ein Alias von mt_rand(). |
Beispiel #1 rand()-Beispiel
<?php
echo rand(), "\n";
echo rand(), "\n";
echo rand(5, 15), "\n";
?>
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.