苏南大叔来水一篇文章,说的是phpsleep函数。在印象里面,这种sleep函数都是以毫秒为单位的。但是,这个php中的这个sleep函数,并不是这样的。

苏南大叔:php中的sleep函数分析,sleep函数的单位是多少? - php-sleep-hero
php中的sleep函数分析,sleep函数的单位是多少?(图2-1)

本文测试环境:win10php@7.3.4

sleep的最小步长单位

phpsleep的单位居然是秒,而不是毫秒。js中没有单独的sleep函数,大家印象里面的sleep函数来自jssetTimeout函数,单位是毫秒。

如果你能接收sleep的最小单位是秒了。那么,下一步告诉你,最小单位是一秒,没有0.1秒的说法。步长也是一秒,就是说,只能有下面的结果:sleep一秒,sleep二秒,sleep三秒....

参数是可以随便传递的,0.11.52.9这些都是可以传递的。但是从执行结果上来看,参数都被intval()了,就是仅保留整数值,而忽略小数值。

苏南大叔:php中的sleep函数分析,sleep函数的单位是多少? - php-sleep-code
php中的sleep函数分析,sleep函数的单位是多少?(图2-2)

测试代码

这段代码中,可以看到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()结果:居然是一秒!

相关链接

总结

php的某些函数,就是这么令人困惑不是?哈哈,更多硬核php函数,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php

本站的忠实读者小伙伴,正在阅读下面这些文章: