time_nanosleep

Delay for a number of seconds and nanoseconds

&reftitle.description; ``array``bool```time_nanosleep` `int` `seconds` `int` `nanoseconds`

Delays program execution for the given number of `seconds` and `nanoseconds`.

&reftitle.parameters;

`seconds`

- Must be a non-negative integer.

`nanoseconds`

- Must be a non-negative integer less than 1 billion.

  On Windows, the system may sleep longer that the given number of nanoseconds, depending on the hardware.

&reftitle.returnvalues;

&return.success;

If the delay was interrupted by a signal, an associative array will be returned with the components:

- `seconds` - number of seconds remaining in the delay

- `nanoseconds` - number of nanoseconds remaining in the delay

&reftitle.examples;

### `time_nanosleep` example

    <?php
    // Careful! This won't work as expected if an array is returned
    if (time_nanosleep(0, 500000000)) {
        echo "Slept for half a second.\n";
    }

    // This is better:
    if (time_nanosleep(0, 500000000) === true) {
        echo "Slept for half a second.\n";
    }

    // And this is the best:
    $nano = time_nanosleep(2, 100000);

    if ($nano === true) {
        echo "Slept for 2 seconds, 100 microseconds.\n";
    } elseif ($nano === false) {
        echo "Sleeping failed.\n";
    } elseif (is_array($nano)) {
        $seconds = $nano['seconds'];
        $nanoseconds = $nano['nanoseconds'];
        echo "Interrupted by a signal.\n";
        echo "Time remaining: $seconds seconds, $nanoseconds nanoseconds.";
    }
    ?>

&reftitle.seealso;

- `sleep`
- `usleep`
- `time_sleep_until`
- `set_time_limit`