rand
(PHP 4, PHP 5, PHP 7, PHP 8)
rand — Erzeugt eine zufällige Zahl
Beschreibung
$min
, int $max
): int
Gibt eine Pseudozufallszahl zwischen min
und
max
(inklusive) zurück 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 kryptografisch sicheren Werte und sollte nicht für kryptografische Zwecke verwendet werden. Wenn kryptografisch 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 Funktion mt_rand() 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.
Parameter-Liste
-
min
-
Der niedrigste zurückzugebende Wert (Vorgabe: 0)-
-
max
-
Der höchste zurückzugebende Wert (Vorgabe: getrandmax()).
Rückgabewerte
Ein Pseudozufallswert zwischen min
(oder 0) und
max
(oder getrandmax(),
inklusive).
Changelog
Version | Beschreibung |
---|---|
7.2.0 | rand() erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich ab PHP 7.1 auf 64bit-Rechnern unterscheiden können. |
7.1.0 | rand() ist nun ein Alias von mt_rand(). |
Beispiele
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
Anmerkungen
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.
Siehe auch
- srand() - Legt den Anfangswert für den Zufallsgenerator fest
- getrandmax() - Liefert die größtmögliche Zufallszahl
- mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
- random_int() - Generates cryptographically secure pseudo-random integers
- random_bytes() - Generates cryptographically secure pseudo-random bytes
- openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes