array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.time-nanosleep.php', 1 => 'time_nanosleep', ), 'up' => array ( 0 => 'ref.misc.php', 1 => 'その他の関数', ), 'prev' => array ( 0 => 'function.sys-getloadavg.php', 1 => 'sys_getloadavg', ), 'next' => array ( 0 => 'function.time-sleep-until.php', 1 => 'time_sleep_until', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/misc/functions/time-nanosleep.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
time_nanosleep — 秒およびナノ秒単位で実行を遅延する
指定した 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 ナノ秒です。";
}
?>