溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Thinkphp 生成訂單號(hào)小案例

發(fā)布時(shí)間:2020-07-21 10:21:41 來(lái)源:網(wǎng)絡(luò) 閱讀:991 作者:Percy丶 欄目:web開(kāi)發(fā)

Thinkphp 生成訂單號(hào)小案例
小伙伴們?cè)谌粘5纳坛琼?xiàng)目開(kāi)發(fā)中,都會(huì)遇到訂單號(hào)生成的問(wèn)題,今天呢思?jí)鬚HP就帶領(lǐng)大家去解讀一下生成訂單號(hào)的問(wèn)題!
首先,訂單號(hào)我們要明確它有有3個(gè)性質(zhì):1.唯一性 2.不可推測(cè)性 3.效率性,唯一性和不可推測(cè)性不用說(shuō)了,效率性是指不能頻繁的去數(shù)據(jù)庫(kù)查詢以避免重復(fù)。
況且滿足這些條件的同時(shí)訂單號(hào)還要足夠的短。不知道小伙伴們?cè)谌粘5捻?xiàng)目中是否也和我一樣去思考過(guò)生成訂單的一些小問(wèn)題,可能你也會(huì)說(shuō),這些東西不用想的那么復(fù)雜,其實(shí)呢,小編也是同意大家的看法,但是殊不知我們做程序的都講究嚴(yán)謹(jǐn)性,而且在訂單模塊的開(kāi)發(fā)中,訂單號(hào)的位置相信大家都知道,所以呢,我們?cè)趯戇@些小程序的時(shí)候,不妨花上幾分鐘去思考一下為什么這樣去定義!好了,下面就告訴大家生成訂單的辦法了!
首先,我們生成訂單的方式呢:可以采用時(shí)間戳加隨機(jī)數(shù)的方式比如:time().rand(10000,99999);這樣呢就生成了一個(gè)15位的隨機(jī)數(shù),時(shí)間戳呢精確到了毫秒,而后五位隨機(jī)數(shù),也去除了高并發(fā)狀況下,訂單號(hào)重復(fù)的情況,當(dāng)然了我們也可以把時(shí)間戳簡(jiǎn)單的處理一下變成了:date("YmdHis").rand(10000,99999);這樣的方式,相信小伙伴們也注意到了我們一直在使用一個(gè)rand的PHP的隨機(jī)數(shù)函數(shù),所以呢,當(dāng)我們?nèi)W(xué)習(xí)PHP的基礎(chǔ)的時(shí)候,我們遇到隨機(jī)數(shù)的函數(shù)的時(shí)候,是不是還在想,這個(gè)函數(shù)到底是有什么用途的呢?現(xiàn)在小伙伴們是不是應(yīng)該明白了呢!當(dāng)然了我們還可以將其封裝成一個(gè)方法,以備我們相似項(xiàng)目中使用,也提高了我們?nèi)粘4a的可復(fù)用性,使我們的代碼的效率也提高了不少,那要怎么封裝呢,小編給大家寫一個(gè)簡(jiǎn)單的小示例:
function get_sn() {
return date('YmdHis').rand(100000, 999999);
}
當(dāng)然了這只是一個(gè)簡(jiǎn)答的小示例,更多更好玩的小程序,還是需要各位小伙伴一起去開(kāi)發(fā)了!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI