php microtime()函数的困惑

王鹏勇 发布于 2011/10/26 17:04
阅读 626
收藏 0
PHP

    在写生成流水号的时候用到了microtime()这个函数,写的时候一切都正常,每次用这个函数都返回10位整数2位小数,我是将其中的点去掉然后再从后截取12个字符做为流水号的,在实际用的时候去发现有时候得到的流水号为空,这个就让我认真去找为什么会为空.我先测试这个函数,输出了几下都没有问题,去除点后都是12位,接着去找其他的问题.怎么找都没有找到原因。

    后来又定位到应该是这个函数的问题,我就循环10万次输出microtime(true)的值,找到问题了,就是这个函数,会有输出0位或1位小数的情况。

    在网上找了为什么会这样也没有找到原因,是因为系统配置的原因,还是因为这个函数这样输出是对的,现在也没有找到结果。

    您要是知道为什么,真诚的希望您给俺留下言,非常感谢。

    不过问题已经解决了,采用其它函数组合的方式生成流水号。呵呵
加载中
0
傅小黑
傅小黑
要么用number_format来规定他的位数好了
0
daijie
daijie

http://cn.php.net/manual/zh/function.microtime.php

手册没说一定会有两位小数啊。只说是浮点数。

0
王鹏勇
王鹏勇
我用的时候一直都输出2位小数,就按2位小数处理的。后来发现不是的。
0
汪先生
汪先生
用这个时间+8位随机数, 然后md5加密, 32位的流水号很完美 啊哈哈
返回顶部
顶部