在PHP中暂停代码执行一定时间,有两个函数可以实现,一个是sleep(),另一个是usleep(),它们参数都是一个整数值。sleep()是暂停多少秒,usleep()是暂停多少微秒。
注意:usleep()单位是微秒,1秒 = 1000毫秒 ,1毫秒 = 1000微秒,即1微秒等于百万分之一秒。
如果程序中要使用要暂停多少毫秒,只能使用usleep(),务必注意参数的单位,假设暂停 50毫秒,应该使用 usleep(50000),而不是usleep(50)。
另外,这个暂停的时候不可能是百分百的准确,跟系统的调度、CPU时钟周期等等有一定关系。
sleep() 函数延迟代码执行若干秒。
语法
sleep(seconds)
seconds必需。以秒计的暂停时间。
返回值
若成功,返回 0,否则返回 false。
错误/异常
如果指定的描述 seconds 是负数,该函数将生成一个 E_WARNING。
实例一
echo date('h:i:s') . "
"; // 02:42:15
//暂停 10 秒
sleep(10);
//重新开始
echo date('h:i:s'); // 02:42:25
?>
usleep() 函数延迟代码执行若干微秒。
语法
usleep(microseconds)
microseconds必需。以微秒计的暂停时间。
提示和注释
注释:在 PHP 5 之前,该函数无法工作于 Windows 系统上。
注释:一微秒等于百万分之一秒。
echo date('h:i:s') . "
"; // 02:45:32
//延迟 10 秒
usleep(10000000);
//再次开始
echo date('h:i:s'); // 02:45:42
?>
time_sleep_until() 函数延迟代码执行直到指定的时间。
语法
time_sleep_until(timestamp)
timestamp必需。脚本唤醒时的时间戳。
说明
使脚本暂停执行,直到指定的 timestamp。
返回值
如果成功则返回 TRUE,失败则返回 FALSE。
错误/异常
如果指定的时间戳位于过去,则该函数将生成一个 E_WARNING。
提示和注释
注释:所有信号都将在脚本唤醒后递送。
注释:本函数未在 Windows 平台下实现。<?php
// 从现在起 10 秒后唤醒
time_sleep_until(time()+10);
?>
time_nanosleep() 函数延迟代码执行若干秒和纳秒。
语法
time_nanosleep(seconds,nanoseconds)
seconds必需。必须是正整数。
nanoseconds必需。必须是小于 10 亿的正整数。
说明
延迟程序执行指定的 seconds 和 nanoseconds 数。
返回值
如果成功则返回 TRUE,失败则返回 FALSE
如果延迟被一个信号中断,将返回带有以下组件的关联数组:
•seconds - 延迟中剩余的秒数
•nanoseconds - 延迟中剩余的纳秒数
提示和注释
注释:本函数未在 Windows 平台下实现。
if (time_nanosleep(3,500000000) === true){
echo "暂停 3 秒半";
}
?>