W3docs

mt_srand()

Today, we will discuss the mt_srand() function in PHP. This function is used to seed the random number generator used by the mt_rand() function.

Heute werden wir die Funktion mt_srand() in PHP besprechen. Diese Funktion initialisiert den Zufallszahlengenerator, der von mt_rand() verwendet wird. Hinweis: mt_srand() ist seit PHP 8.1 veraltet und wurde in PHP 8.4 entfernt. Verwenden Sie für moderne PHP-Anwendungen stattdessen random_int() oder random_bytes().

Was ist die Funktion mt_srand()?

Die Funktion mt_srand() initialisiert den Mersenne-Twister-Zufallszahlengenerator mit einem bestimmten Startwert (Seed). Wenn ein fester Startwert angegeben wird, erzeugt mt_rand() eine vorhersehbare und reproduzierbare Zahlenfolge. Dieses deterministische Verhalten ist hauptsächlich für Tests, Debugging oder Szenarien nützlich, in denen eine konsistente Zufallsausgabe erforderlich ist.

So verwenden Sie die Funktion mt_srand()

Die Verwendung von mt_srand() ist einfach. Hier ist ein grundlegendes Beispiel:

So verwenden Sie die Funktion mt_srand() in PHP?

<?php
// Seed the random number generator using the mt_srand() function
mt_srand(12345);

// Generate a random integer using the mt_rand() function
$result = mt_rand();

// Output the result
echo $result;
?>

In diesem Beispiel legt mt_srand(12345) den Startwert des Generators fest. Nachfolgende Aufrufe von mt_rand() werden in verschiedenen Läufen dieselbe Ausgabe erzeugen, da der Startwert konstant bleibt. Das Ergebnis wird in $result gespeichert und auf dem Bildschirm ausgegeben.

Hinweis zur Versionkompatibilität: Ab PHP 8.1 löst dieser Code eine Veraltungswarnung (Deprecation Warning) aus. Für PHP 8.4+ und moderne Projekte ersetzen Sie mt_srand()/mt_rand() durch random_int(), um eine sichere und unterstützte Zufallszahlengenerierung zu gewährleisten.

Fazit

Während mt_srand() deterministische Zufallsfolgen für Legacy-Code oder spezifische Testanforderungen bereitstellt, ist es in PHP 8.1 veraltet und in PHP 8.4 entfernt worden. Die moderne PHP-Entwicklung sollte sich für eine sichere und unterstützte Zufallszahlengenerierung auf random_int() oder random_bytes() stützen. Wir hoffen, dass dieser Leitfaden den historischen Kontext und die korrekte Verwendung von mt_srand() in älteren PHP-Umgebungen verdeutlicht.

Practice

Übung

Was ist der Zweck der Funktion mt_srand() in PHP?