您好,登錄后才能下訂單哦!
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);
}
當然了這只是一個簡答的小示例,更多更好玩的小程序,還是需要各位小伙伴一起去開發了!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。