time_nanosleep

秒およびナノ秒単位で実行を遅延する

説明

arraybool time_nanosleep(int $seconds, int $nanoseconds)

指定した seconds および nanoseconds の時間だけプログラムの実行を遅延させます。

パラメータ

seconds

非負の整数である必要があります。

nanoseconds

十億よりも小さい非負の整数である必要があります。

注意: Windows では、与えられたナノ秒以上に長くスリープする可能性があります。 動作はハードウェア依存です。

戻り値

成功した場合に true を、失敗した場合に false を返します。

シグナルによって遅延処理が中断された場合、以下の要素からなる連想配列を返します。

  • seconds - 残りの秒数
  • nanoseconds - 残りのナノ秒数

例1 time_nanosleep の例

<?php
// 注意! もし配列が返された場合、これはうまく動作しません
if (time_nanosleep(0, 500000000)) {
    echo "0.5 秒遅延しました。\n";
}

// こちらのほうがよいでしょう
if (time_nanosleep(0, 500000000) === true) {
    echo "0.5 秒遅延しました。\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