PHP函数复习:list()和microtime() Unknown 2009/07/03

| |

今天闲来无事,分析一下Bo-blog的代码。

其中碰到了两个函数,一个是microtime(),用于计算代码执行花了多少时间。另一个是list(),用于分配一组数据到一个数组中。

microtime()的返回格式为“msec sec”的字符串,其中 sec 是当前的 Unix 时间戳,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。 如:0.87605300 1246631746,前面红色字串是微秒部分,后面蓝色字串是秒的部分(Unix Timestamp)。顺便提一下,如果你用time()函数的话,仅返回蓝色的秒的部分。我们可以设计一个函数getMicroTime(),返回值是return sec + msec,如上面的例子,返回1246631746.87605300

再提一下计算代码执行花费时间的原理是:先在代码头部加上$time_start=getMicroTime();再在代码尾部加上$time_end=getMicroTime();两个变量一减,就是用了多少秒,比如1.301秒,乘以1000,就是1301ms(毫秒)。如果是1301毫秒的话,你的服务器的性能已经算是差的了(我的有时更差)。


再来谈list()这个函数,这个函数我老是记不住。Google了一下,其实list()这个函数是类似array()的用于赋值的语法结构。

$fruit=array('apple', 'pear', 'banana'');

而list()是这样用的:

list($fruit_a, $fruit_b, $fruit_c, $fruit_d) = array('apple', 'pear', 'banana', 'orange');

注意:该函数只用于数字索引的数组,且假定数字索引从 0 开始。

当然,更复杂的可以这样用(下面这个例子,你先要确认explode()函数只返回2个变量才行!如果多了,只取前面两个数组成员):

list($usec, $sec) = explode(" ",microtime());

有了这个,回头我们看一下上面的getMicroTime()函数如何写(注:经试验,$msec变量无法使用,故改为$usec):

function getMicroTime()
{
list($usec,$sec) = explode(" ", microtime());
return (float)$sec + (float)$usec;
}

请给这篇日志评个分吧~!

本文评分: 5.8/10 (16 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]