A.测算for循环的执行时间( ~( [, Y5 m7 v' Q! U
B.测定服务器的时钟频率 7 _) v- w; ^3 M n5 b) FC.计算操作系统的硬件时钟频率与软件时钟频率的差( C/ |+ S `# ~* F1 w
D.测算for循环、一个array_sum()函数与一个microtime()的总执行时间; a3 S2 h8 z }1 D! h- V* ~
E.测算for循环、两个array_sum()函数与两个microtime()的总执行时间 + r' @7 k# ?* K' q ` 3 U( c) T& l. ?: E4 N8 n4 T( Q, Z5 n: e
4.以下脚本的标记处应该填入什么函数?
% |' P2 f+ u7 F* o3 S- a- S8.这是个很迷惑人的问题,但其实很简单。传给gmmktime()的值其实就是UNIX纪元,转化成时间戳后是0。gmmktime()的内部用到mktime(),后者基于当前地区工作。这里的问题是,UNIX纪元不能被用在本初子午线以东的时区——比如莫斯科。这将产生一个负值,Windows操作系统不支持。因此脚本输出-1,答案是B。也可能会输出一个警告,取决于你的设置(但绝对不是答案D说的“一个错误”)。- p8 \+ K5 v% j0 I- a& i1 X, e& N
. ]4 e( t( g5 m
9.答案是E。很显然,time()计算从UNIX纪元开始至今经过的秒数,答案A和D都表述了这一点,它们都是正确的。答案B和C说的不是那么直接,但其实也表达了相同的意思。UNIX纪元是一个确定的时间点,因此无论你使用GMT时区或其他你所在的时区,从UNIX纪元至今经过的秒数都是一样的。只有在你把时间戳转换成人们能够理解的表达形式时才需要考虑时区。所以答案B和C也是正确的。这题似乎有点戏弄人的意思,但实际上它考验你对绝对时间与相对时间二者不同之处的认识,这个概念在处理日期时相当重要。0 N: K* l3 n# R; ]8 O2 k& j$ y, `" m
4 w5 o' _! M. t; Q* q. `% _" }0 Y10.传递给date()的参数H和s代表24小时制的时间与秒数。i被一个反斜线转义,因此它将被当作字母直接输出。调用strtotime()时没有给出参数,它将返回当天午夜的时间。因此最终的输出是00:i:00,答案是C。" w V8 W, i5 I! @" w( a
" ]1 a, c/ m% Q/ p; |, E! B11.正确答案是A,当前时间加3600秒(1小时*60分钟*60秒)。其他选项都会产生错误的时间戳。: u8 H! r6 s9 r
1 x: [2 `/ d9 d12.getdate函数返回记录指定时间戳相关信息的数组(如果没有指定时间戳,就改用当前日期)。答案是C。4 N' L: R7 A3 E* O# k9 u
l# ^4 | y1 j# N
13.答案是D。microtime函数返回一个由时间戳和小数两部分组成的字符串,两部分由空格分开。因此explode()将字符串分割并放入数组,array_sum()把它们相加,转换成数字。1 {# E( X5 Z) V7 h( ^ A
; y4 u( W# U" [" G14.答案是B和D。date函数返回字符串,localtime()返回数组。 + W- R6 t: z3 p! U, \# S # z, p. b4 T7 b6 b. @15.任何时区下的当前时间都是相同的——当前时间是一个绝对的时间点。答案是B。