time_nanosleep

(PHP 5, PHP 7, PHP 8)

time_nanosleepEsperar durante un número de segundos y nanosegundos

Descripción

time_nanosleep(int $seconds, int $nanoseconds): array|bool

time_nanosleep() impone un retraso de ejecución de seconds segundos y nanoseconds nanosegundos.

Parámetros

seconds

Debe ser un integer no negativo.

nanoseconds

Debe ser un integer no negativo, inferior a 1000 millones.

Nota: En Windows, el sistema puede esperar más tiempo que el número de nanosegundos dado, según el hardware.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Si el retraso es interrumpido por una señal, se devolverá un array asociativo con los elementos:

  • seconds: número de segundos restantes en el retraso
  • nanoseconds: número de nanosegundos restantes en el retraso

Ejemplos

Ejemplo #1 Ejemplo con time_nanosleep()

<?php
// ¡Atención! Esto no funcionará como se espera si se devuelve un array
if (time_nanosleep(0, 500000000)) {
echo
"Dormir durante media segundo.\n";
}

// Esto es mejor:
if (time_nanosleep(0, 500000000) === true) {
echo
"Dormir durante media segundo.\n";
}

// Y esto es la mejor forma:
$nano = time_nanosleep(2, 100000);

if (
$nano === true) {
echo
"Dormir durante 2 segundos y 100 microsegundos.\n";
} elseif (
$nano === false) {
echo
"El retraso ha fallado.\n";
} elseif (
is_array($nano)) {
$seconds = $nano['seconds'];
$nanoseconds = $nano['nanoseconds'];
echo
"Interrumpido por una señal.\n";
echo
"Tiempo restante: $seconds segundos, $nanoseconds nanosegundos.";
}
?>

Ver también

  • sleep() - Detiene la ejecución durante algunos segundos
  • usleep() - Detiene la ejecución durante algunas microsegundos
  • time_sleep_until() - Detiene el script durante una duración especificada
  • set_time_limit() - Establece el tiempo máximo de ejecución de un script