Signatur
Beschreibung
stats_rand_get_seeds() ist Teil der PECL stats-Erweiterung und gibt die aktuell gesetzten Seed-Werte des internen Zufallszahlengenerators zurück. Der Generator arbeitet mit zwei unabhängigen Integer-Seeds, die gemeinsam den Zustand des Generators beschreiben.
Die Funktion ist nützlich, wenn man den Zustand des Zufallszahlengenerators zu einem bestimmten Zeitpunkt sichern möchte, um ihn später mit stats_rand_setall() exakt wiederherstellen zu können. Dadurch lassen sich reproduzierbare Zufallssequenzen erzeugen – wichtig etwa für Unit-Tests, Simulationen oder wissenschaftliche Berechnungen, bei denen Reproduzierbarkeit gefragt ist.
Beide Parameter werden als Referenz übergeben und von der Funktion mit den aktuellen Seed-Werten befüllt. Nach dem Aufruf enthalten $seed1 und $seed2 die ganzzahligen Seeds des Generators.
Hinweis: Die Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung stats installiert und geladen ist. Sie ist nicht Bestandteil des PHP-Kerns.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $seed1 Pflicht | int | Wird per Referenz übergeben und nach dem Aufruf mit dem ersten aktuellen Seed-Wert des Zufallszahlengenerators befüllt. | |
| $seed2 Pflicht | int | Wird per Referenz übergeben und nach dem Aufruf mit dem zweiten aktuellen Seed-Wert des Zufallszahlengenerators befüllt. |
Rückgabewert
true zurück, wenn die Seeds erfolgreich ausgelesen wurden, andernfalls false.Beispiele
Aktuelle Seeds auslesen und ausgeben
<?php
// Seed-Werte des Stats-Zufallszahlengenerators auslesen
$seed1 = 0;
$seed2 = 0;
if (stats_rand_get_seeds($seed1, $seed2)) {
echo "Seed 1: $seed1" . PHP_EOL;
echo "Seed 2: $seed2" . PHP_EOL;
} else {
echo "Fehler beim Auslesen der Seeds." . PHP_EOL;
}
Generatorzustand sichern und wiederherstellen
<?php
// Aktuelle Seeds sichern
$seed1 = 0;
$seed2 = 0;
stats_rand_get_seeds($seed1, $seed2);
echo "Gespeicherte Seeds: $seed1, $seed2" . PHP_EOL;
// Einige Zufallszahlen erzeugen (verändert den internen Zustand)
$r1 = stats_rand_gen_iuniform(1, 100);
$r2 = stats_rand_gen_iuniform(1, 100);
echo "Zufallszahlen nach dem ersten Durchlauf: $r1, $r2" . PHP_EOL;
// Zustand wiederherstellen
stats_rand_setall($seed1, $seed2);
// Dieselbe Sequenz erneut erzeugen
$r3 = stats_rand_gen_iuniform(1, 100);
$r4 = stats_rand_gen_iuniform(1, 100);
echo "Zufallszahlen nach dem zweiten Durchlauf (reproduziert): $r3, $r4" . PHP_EOL;
// r1 === r3 und r2 === r4, da der Zustand wiederhergestellt wurde
// Wichtig · Fallstricke
PECL-Abhängigkeit: stats_rand_get_seeds() ist nicht im PHP-Kern enthalten und erfordert die Installation der PECL-Erweiterung stats. Ohne diese Erweiterung führt der Aufruf zu einem fatalen Fehler (Call to undefined function).
Kryptographische Eignung: Der interne Zufallszahlengenerator der stats-Erweiterung ist nicht für kryptographische Zwecke geeignet. Für sicherheitsrelevante Anwendungen (z. B. Passwörter, Tokens) sollte stattdessen random_bytes() oder random_int() verwendet werden.
Die genaue Dokumentation der Funktion ist in der offiziellen PHP-Dokumentation spärlich. Das Verhalten kann je nach installierter Version der stats-Erweiterung leicht variieren.