Saltar al contenido

srand()

La función srand() en PHP se utilizaba para inicializar el generador de números aleatorios. Importante: Esta función fue marcada como obsoleta en PHP 7.1 y completamente eliminada en PHP 8.0. Esta guía explica su comportamiento heredado y muestra cómo lograr los mismos resultados con PHP moderno.

¿Qué es la función srand()?

La función srand() era una función integrada de PHP que inicializaba el generador de números aleatorios con un valor de semilla específico. Aceptaba un parámetro entero opcional $seed y devolvía void. Cuando se proporciona una semilla, el generador produce una secuencia predecible de números, lo cual es útil para pruebas o simulaciones reproducibles.

Cómo usar la función srand() (PHP heredado < 7.1)

Usar srand() en versiones antiguas de PHP era sencillo. Así es como funcionaba:

⚠️ Aviso de obsolescencia: Este ejemplo es para entornos de PHP heredado (versiones anteriores a 7.1). Ejecutar este código en PHP 7.1+ provocará un error fatal.

Ejemplo heredado

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;
?>

En este ejemplo, srand(123) inicializa el generador. Las llamadas posteriores a rand() producirán exactamente la misma secuencia de números cada vez que el script se ejecute con esa semilla.

Alternativas modernas de PHP

Dado que srand() y rand() se eliminaron en PHP 8.0, utiliza en su lugar las siguientes funciones modernas:

  • random_int(): Recomendada para la mayoría de los casos de uso. Genera enteros aleatorios criptográficamente seguros y no requiere una semilla manual.
  • mt_rand(): Más rápida que random_int() pero no es criptográficamente segura. PHP 7.1+ inicializa automáticamente el algoritmo Mersenne Twister, por lo que la inicialización manual rara vez es necesaria.

Ejemplo moderno

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

Conclusión

La función srand() es una herramienta heredada que ha sido eliminada de PHP moderno. Para proyectos actuales, utiliza random_int() para números aleatorios seguros o mt_rand() para aleatoriedad de propósito general. Esta guía debería ayudarte a migrar código heredado y comprender el enfoque moderno para la generación de números aleatorios en PHP.

Práctica

¿Qué función es srand() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.