Thinkphp 生成訂單號小案例

Thinkphp 生成訂單號小案例
小夥伴們在日常的商城項目開發中,都會遇到訂單號生成的問題,今天呢思夢PHP就帶領大家去解讀一下生成訂單號的問題!
首先,訂單號我們要明確它有有3個性質:1.唯一性 2.不可推測性 3.效率性,唯一性和不可推測性不用說了,效率性是指不能頻繁的去數據庫查詢以避免重複。
況且滿足這些條件的同時訂單號還要足夠的短。不知道小夥伴們在日常的項目中是否也和我一樣去思考過生成訂單的一些小問題,可能你也會說,這些東西不用想的那麼複雜,其實呢,小編也是同意大家的看法,但是殊不知我們做程序的都講究嚴謹性,而且在訂單模塊的開發中,訂單號的位置相信大家都知道,所以呢,我們在寫這些小程序的時候,不妨花上幾分鐘去思考一下爲什麼這樣去定義!好了,下面就告訴大家生成訂單的辦法了!
首先,我們生成訂單的方式呢:可以採用時間戳加隨機數的方式比如:time().rand(10000,99999);這樣呢就生成了一個15位的隨機數,時間戳呢精確到了毫秒,而後五位隨機數,也去除了高併發狀況下,訂單號重複的情況,當然了我們也可以把時間戳簡單的處理一下變成了:date("YmdHis").rand(10000,99999);這樣的方式,相信小夥伴們也注意到了我們一直在使用一個rand的PHP的隨機數函數,所以呢,當我們去學習PHP的基礎的時候,我們遇到隨機數的函數的時候,是不是還在想,這個函數到底是有什麼用途的呢?現在小夥伴們是不是應該明白了呢!當然了我們還可以將其封裝成一個方法,以備我們相似項目中使用,也提高了我們日常代碼的可複用性,使我們的代碼的效率也提高了不少,那要怎麼封裝呢,小編給大家寫一個簡單的小示例:
function get_sn() {
return date('YmdHis').rand(100000, 999999);
}
當然了這只是一個簡答的小示例,更多更好玩的小程序,還是需要各位小夥伴一起去開發了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章