42

对于一个非常简单的分析,我使用microtime()这样的:

$now = microtime();
for (...) {
    // do something
    echo microtime() - $now;
    $now = microtime();
}

现在,这条echo线的输出似乎完全是随机的,也就是说,我预期会出现波动,但想到会出现负数

然而,一个典型的结果包含约 1/3 的负数。我在 Solaris (PHP 5.0.x) 和 WinVista (PHP 5.2.3) 上确认了这一点。

这到底是怎么回事?我是不是不小心发明了一台时光机?

4

1 回答 1

69

如果要对 microtime 返回的内容进行操作,则必须将“get as float”参数设置为 true(默认为 false)。

http://www.php.net/manual/en/function.microtime.php

$now = microtime(true);
for (...) {
    // do something
    echo microtime(true) - $now;
    $now = microtime(true);
}
于 2010-04-09T12:02:03.240 回答