Php 在这个ob_flush示例中,sleep()和usleep()之间有什么区别
我正在尝试学习Php 在这个ob_flush示例中,sleep()和usleep()之间有什么区别,php,Php,我正在尝试学习ob\u start,ob\u 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); } if(ob_get_level()==0)ob_start(); 对于($
ob\u start
,ob\u 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);
}
if(ob_get_level()==0)ob_start();
对于($i=0;$i而言,睡眠延迟程序执行的时间为给定的秒数,而延迟程序执行的时间为给定的微秒数。不能将分数用作睡眠的参数
这里0.03将被转换为整数
sleep(0);
因此PHP将休眠0秒
如果你想睡眠几秒钟,你必须使用or。我想我已经找到了一个答案来解答你的困惑:
sleep(0.03)
不工作,因为它需要一个整数。sleep(0.03)
被解释为sleep(0)
这就是为什么还有一个函数usleep()
我猜这三个不同的函数是函数如何构建的结果-要求整数-因为最大整数的值取决于平台。32位的最高整数是2147483647。64位的最高整数是9223372036854775807。我认为OP很清楚地意识到了这一点。我已经尝试了你的代码,并且已经成功了立即工作。它以3000毫秒的间隔在屏幕上很好地绘制数字0-999。这个问题很难回答。OP知道其中的区别,但他仍然希望将分数与sleep()
(这行不通)。只需使用usleep()
。这就是它的用途。@davidkonrad和Gerald Schneider是对的,sleep()只接受整数谢谢,现在我知道为什么我不能睡觉了,非常感谢
sleep(0);