>  기사  >  백엔드 개발  >  고정밀 시간을 생성하는 PHP의 예

고정밀 시간을 생성하는 PHP의 예

WBOY
WBOY원래의
2016-07-25 09:10:111126검색
  1. $start = microtime(true);
  2. for($i = 0; $i < 1000; $i ) {
  3. preg_match('/age=d /',$_SERVER['QUERY_STRING']);
  4. }
  5. $end = microtime(true);
  6. ?>
复制代码

php 5.0.0中增加了对在microtime()中使用可选参数的支持。如果不带参数,或者带有不能转换成true的参数,或者在php的早期版本中,microtime()会返回一个Unix纪元起所经过时间的微秒部分,一个空格和自纪元起所经过的秒数。例如,返回值"0.41644100 1026683258" 意味着自纪元起经过了"1026683258.41644100秒"时间。

包含微秒的时间值对于生成唯一的ID非常有用。只要一个进程不会在一微秒内同时生成一个以上的ID,就能保证用包含微秒的时间值与当前进程的ID组成一个唯一的ID值。

再来看一个例子:使用microtime()(返回的字符串格式)生成了这样一个ID。

例2:用microtime()生成一个ID

  1. list($microseconds,$seconds) = explode(' ',microtime());
  2. $id = $seconds.$microseconds.getmypid();
  3. ?>
复制代码

注意: 例2在多线程的系统中并不十分可靠,因为存一个非难(但极小)的概率,同一个进程的两个线程会在同一微秒内调用microtime()。



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.