Saltar al contenido

Obtener booleano aleatorio verdadero / falso en PHP

Solución:

Si no desea tener un elenco booleano (no es que haya nada de malo en eso), puede convertirlo fácilmente en un booleano como este:

$value = rand(0,1) == 1;

Básicamente, si el valor aleatorio es 1, producir true, de lo contrario false. Por supuesto, un valor de 0 o 1 ya hechos como valor booleano; así que esto:

if (rand(0, 1)) { ... }

Es una condición perfectamente válida y funcionará como se esperaba.

Alternativamente, puede usar mt_rand() para la generación de números aleatorios (es una mejora sobre rand()). Incluso podrías ir tan lejos como openssl_random_pseudo_bytes() con este código:

$value = ord(openssl_random_pseudo_bytes(1)) >= 0x80;

Actualizar

En PHP 7.0 podrá utilizar random_int(), que genera enteros pseudoaleatorios criptográficamente seguros:

$value = (bool)random_int(0, 1);

Yo uso un simple

rand(0,1) < 0.5

Solo para completar, si quieres úsalo en un if condición, no hay necesidad de lanzar, ya que 0 se considera false:

if (mt_rand(0,1)) {
  // whatever
}

Nota: mt_rand es 4 veces más rápido que rand

los mt_rand() La función es un reemplazo directo de la antigua. rand(). Utiliza un generador de números aleatorios con características conocidas utilizando el “Mersenne Twister”, que producirá números aleatorios cuatro veces más rápido que lo que el libc promedio rand() proporciona.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *