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. Scrietime_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.