小伙伴們?cè)谌粘5纳坛琼?xiàng)目開(kāi)發(fā)中,都會(huì)遇到訂單號(hào)生成的問(wèn)題,今天呢小編就帶領(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è)趯?xiě)這些小程序的時(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)粘4a的可復(fù)用性,使我們的代碼的效率也提高了不少,那要怎么封裝呢,小編給大家寫(xiě)一個(gè)簡(jiǎn)單的小示例:function
get_sn()
{
return date('YmdHis').rand(100000,
999999);}當(dāng)然了這只是一個(gè)簡(jiǎn)答的小示例,更多更好玩的小程序,還是需要各位小伙伴一起去開(kāi)發(fā)了!最后呢,有什么問(wèn)題可以聯(lián)系小編,也可以加入小編的思?jí)鬚HP官方群號(hào),我們平時(shí)還會(huì)有免費(fèi)的實(shí)戰(zhàn)課程等著你來(lái)觀看!小編的聯(lián)系QQ:476319748備注:微信公眾平臺(tái)???群1:466388300備注:微信公眾平臺(tái)?群2:527490769備注:微信公眾平臺(tái)? 歡迎小伙伴的加入!