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
maxkleiner alsminist, ohne wie mt_rand()falsezurü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

