「已注销」 2018-11-01 09:58 采纳率: 0%
浏览 3004

php mt_rand()同一秒产生了相同的随机数,这是为什么?

项目的订单编号是使用如下php代码随机生成的:

 $oid = date('YmdHis',time()).mt_rand(1000,9999);

为了防止订单号重复,特意在后面加个mt_rand(1000,9999)以防止订单号重复的情况,
但是还是出现问题了
出现问题是情况是这样的:
有一个用户在同一秒下了两个定单,系统产生的订单号居然是一样的,都是201811011716153316,请问这是什么原因造成的呢?

  • 写回答

3条回答 默认 最新

  • X-i-n 2018-11-01 10:03
    关注

    随机数一般用时间做种子,相同时间产生相同结果的可能性很大,看一下uniqid
    http://php.net/manual/zh/function.uniqid.php

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog