time_nanosleep în PHP

Sistem și configurare PHP 5.0+ (pe Windows: PHP 5.3+)

Oprește scriptul pentru un număr de secunde plus nanosecunde.

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

Ce face time_nanosleep

time_nanosleep este varianta cea mai precisă a lui sleep: primește separat secundele și nanosecundele (1 secundă = 1.000.000.000 nanosecunde). Precizia reală depinde de sistemul de operare, deci nu te baza pe nanosecunde exacte.

Dacă pauza este întreruptă de un semnal, returnează un tablou cu timpul rămas (seconds, nanoseconds).

Parametri

Parametru Descriere
$seconds Secundele, număr întreg pozitiv.
$nanoseconds Nanosecundele, între 0 și 999.999.999.

Ce returnează

true la succes, un tablou cu timpul rămas dacă a fost întreruptă, false la eroare.

Exemple

Exemplul 1: Pauză de un sfert de secundă

<?php
$start = hrtime(true);
var_dump(time_nanosleep(0, 250000000));
$ms = (hrtime(true) - $start) / 1e6;

echo $ms >= 250 ? "Au trecut cel puțin 250 ms" : "Prea repede";

Rezultat

bool(true)
Au trecut cel puțin 250 ms

Greșeli frecvente

  • Dai nanosecundele peste 999.999.999 (de exemplu 1,5 secunde ca 1500000000). Primești eroare. Scrie time_nanosleep(1, 500000000).

Comenzi înrudite

  • sleep / usleep: Oprește scriptul pentru un număr de secunde (sleep) sau de microsecunde (usleep).
  • time_sleep_until: Oprește scriptul până la un moment anume, dat ca timestamp.
  • microtime / hrtime: Returnează momentul curent cu precizie de microsecunde. Este folosită pentru măsurarea duratei unui cod.