Zum Inhalt springen

srand()

Die srand()-Funktion in PHP wurde verwendet, um den Zufallszahlengenerator zu initialisieren. Wichtig: Diese Funktion wurde in PHP 7.1 als veraltet markiert und in PHP 8.0 vollständig entfernt. Dieser Leitfaden erklärt das Legacy-Verhalten und zeigt, wie Sie die gleichen Ergebnisse mit modernem PHP erzielen.

Was ist die srand()-Funktion?

Die srand()-Funktion war eine integrierte PHP-Funktion, die den Zufallszahlengenerator mit einem bestimmten Seed-Wert initialisierte. Sie akzeptierte einen optionalen Ganzzahlenparameter $seed und gab void zurück. Wenn ein Seed angegeben wird, erzeugt der Generator eine vorhersehbare Zahlenfolge, was sich für Tests oder reproduzierbare Simulationen eignet.

Verwendung der srand()-Funktion (Legacy PHP < 7.1)

Die Verwendung von srand() in älteren PHP-Versionen war unkompliziert. So funktionierte es:

⚠️ Hinweis zur Veraltung: Dieses Beispiel gilt für Legacy-PHP-Umgebungen (Versionen vor 7.1). Das Ausführen dieses Codes auf PHP 7.1+ führt zu einem fatalen Fehler.

Legacy-Beispiel

php
<?php
  // Seed the random number generator using the srand() function
  srand(123);

  // Generate a random number using the rand() function
  $result = rand();

  // Output the result
  echo $result;
?>

In diesem Beispiel initialisiert srand(123) den Generator. Nachfolgende Aufrufe von rand() erzeugen bei jedem Skriptdurchlauf mit diesem Seed exakt dieselbe Zahlenfolge.

Moderne PHP-Alternativen

Da srand() und rand() in PHP 8.0 entfernt wurden, verwenden Sie stattdessen die folgenden modernen Funktionen:

  • random_int(): Empfohlen für die meisten Anwendungsfälle. Es erzeugt kryptografisch sichere Zufallszahlen und erfordert keine manuelle Initialisierung.
  • mt_rand(): Schneller als random_int(), aber nicht kryptografisch sicher. PHP 7.1+ initialisiert den Mersenne-Twister-Algorithmus automatisch, sodass eine manuelle Initialisierung selten erforderlich ist.

Modernes Beispiel

php
<?php
  // Generate a cryptographically secure random integer between 1 and 100
  $result = random_int(1, 100);
  echo $result;
?>

Fazit

Die srand()-Funktion ist ein Legacy-Tool, das aus modernem PHP entfernt wurde. Verwenden Sie für aktuelle Projekte random_int() für sichere Zufallszahlen oder mt_rand() für allgemeine Zufälligkeit. Dieser Leitfaden sollte Ihnen helfen, Legacy-Code zu migrieren und den modernen Ansatz zur Zufallszahlenerzeugung in PHP zu verstehen.

Praxis

Welche Funktion hat srand() in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.