我正在尝试学习ob_start
,ob_flush
功能,我在互联网上找到了此代码
if (ob_get_level() == 0) ob_start();
for($i=0;$i<1000;$i++)
{
echo "$i<br />";
ob_flush();
flush();
usleep(30000);
// sleep(0.03);
}
我正在尝试更改使用微秒睡眠(秒)的usleep()
函数,但它不能用作usleep()
。
sleep()
和usleep()
之间是否存在错误或区别?
答案 0 :(得分:1)
答案 1 :(得分:1)
您不能将分数用作sleep()
sleep(0.03);
这里0.03将被转换为整数
sleep(0);
所以PHP会睡0秒。
如果你想睡几分钟,你必须使用usleep()
或time_nanosleep()
。
答案 2 :(得分:1)
我想我已经找到了你感到困惑的答案:
sleep(0.03)
不起作用,因为它需要一个整数。 sleep(0.03)
被解释为sleep(0)
。
这就是为什么还有函数usleep()
以毫秒为单位提供sleep(),例如usleep(3000)。为什么还有第三个睡眠功能,time_nanosleep()
提供秒和纳秒的混合,甚至更高的分辨率。
我猜三个不同的函数是如何构建函数的结果 - 要求整数 - 并且因为最大整数的值是平台相关的。在32位中,最高整数是2147483647.在64位中,最高整数是9223372036854775807.