Задержка на заданное число секунд и наносекунд

# time_nanosleep

(PHP 5, PHP 7, PHP 8)

time_nanosleep — Задержка на заданное число секунд и наносекунд

### Описание

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

Откладывает исполнение программы на заданные в параметрах `seconds` и `nanoseconds` число секунд и наносекунд соответственно.

### Список параметров

`seconds`

  Должно быть целым положительным числом.

`nanoseconds`

  Должно быть целым положительным числом, меньшим одного миллиарда.

  > Замечание: В Windows система может откладывать исполнение дольше указанного количества наносекунд, в зависимости от аппаратного обеспечения.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

Если отложенное исполнение было прервано сигналом, то возвращается ассоциативный массив со следующими компонентами:

- `seconds` - число оставшихся секунд
- `nanoseconds` - число оставшихся наносекунд

### Примеры

Пример #1 Пример использования time_nanosleep()

    <?php
    // Внимание! Если будет возвращён массив, то такая функция не сработает, как ожидалось
    if (time_nanosleep(0, 500000000)) {
        echo "Задержка на полсекунды.\n";
    }

    // Так лучше:
    if (time_nanosleep(0, 500000000) === true) {
        echo "Задержка на полсекунды.\n";
    }

    // А так лучше всего:
    $nano = time_nanosleep(2, 100000);

    if ($nano === true) {
        echo "Задержка на 2 секунды, 100 микросекунд.\n";
    } elseif ($nano === false) {
        echo "Задержка не удалась.\n";
    } elseif (is_array($nano)) {
        $seconds = $nano['seconds'];
        $nanoseconds = $nano['nanoseconds'];
        echo "Прервано сигналом.\n";
        echo "Осталось: $seconds секунд, $nanoseconds наносекунд.";
    }
    ?>

### Смотрите также

- sleep() - Задерживает выполнение
- usleep() - Задерживает выполнение в микросекундах
- time_sleep_until() - Откладывает исполнение скрипта до заданного времени
- set_time_limit() - Ограничивает время выполнения скрипта

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open