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);
}
當然了這只是一個簡答的小範例,更多更好玩的小程序,還是需要各位小夥伴一起去開發了!