php中的sleep函数分析,sleep函数的单位是多少?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
苏南大叔来水一篇文章,说的是php
的sleep
函数。在印象里面,这种sleep
函数都是以毫秒为单位的。但是,这个php
中的这个sleep
函数,并不是这样的,它并不支持毫秒为单位。
本文测试环境:win10
,php@7.3.4
。
sleep
的最小步长单位
php
的sleep
的单位居然是秒,而不是毫秒。js
中没有单独的sleep
函数,大家印象里面的sleep
函数来自js
的setTimeout
函数,单位是毫秒。
如果你能接受在“php”中“sleep
的最小单位是秒”的事实了。那么,下一步告诉你,最小单位是一秒,没有0.1秒的说法。步长也是一秒,就是说,只能有下面的结果:sleep
一秒,sleep
二秒,sleep
三秒....
参数是可以随便传递的,0.1
、1.5
、2.9
这些都是可以传递的。但是从执行结果上来看,参数都被intval()
了,就是仅保留整数值,而忽略小数值。
测试代码
这段代码中,可以看到sleep
的参数,真实的执行情况。
function msec_time() {
list( $t1, $t2 ) = explode( ' ', microtime() );
return ( float )sprintf( '%.0f', ( floatval( $t1 ) + floatval( $t2 ) ) * 1000 );
}
$t1 = msec_time();
sleep( 1.6 );
$t2 = msec_time();
echo $t2-$t1;
在这个demo
中,1.6
秒的sleep()
结果:居然是一秒!
相关链接
- https://newsn.net/say/php-function-mb_strimwidth.html
- https://newsn.net/say/php-file_get_contents.html
总结
php
的某些函数,就是这么令人困惑不是?哈哈,更多硬核php
函数,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
usleep、time_nanosleep 这俩不说说吗