18位不重复订单号

jerry thinkphp 2015年11月19日 收藏
18位不重复订单号
/**
*   生成10位绝不重复订单号
*/
function order_number(){
    static $ORDERSN=array();                                        //静态变量
    $ors=date('ymd').substr(time(),-5).substr(microtime(),2,5);     //生成16位数字基本号
    if (isset($ORDERSN[$ors])) {                                    //判断是否有基本订单号
        $ORDERSN[$ors]++;                                           //如果存在,将值自增1
    }else{
        $ORDERSN[$ors]=1;
    }
    return $ors.str_pad($ORDERSN[$ors],2,'0',STR_PAD_LEFT);     //链接字符串
}
暂时只测试了本地,如果需要多并发,可以考虑将静态变量变为静态缓存判断