首頁 > php框架 > Laravel > 主體

Laravel如何根據用戶id產生四位數唯一邀請碼

藏色散人
發布: 2020-11-01 16:22:31
轉載
3736 人瀏覽過

新建檔案app/Services/InviteCodeService.php

已綁定到容器看嗜好,如果不想綁定定就

new \App\Services\InviteCodeService

編輯

app/Providers/AppServiceProvider.php

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">    use App\Services\InviteCodeService;     public function register()     {         $this-&gt;app-&gt;singleton('invite_code',InviteCodeService::class);     }</pre><div class="contentsignin">登入後複製</div></div>

測試唯一性<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">      $max_num = 200000;         $codes = [];         for ($i = 1; $i enCode($i);         $i = 1;         foreach ($codes as $code){             $userId = app('invite_code')-&gt;deCode($code); // 邀请码获取用户id             if( $userId != $i)                 dd(&quot;邀请码解密错误&quot;.$i);             $i++;         }         $unique_count =  count(array_unique($codes));         dd($unique_count);  // 不重复的总数</pre><div class="contentsignin">登入後複製</div></div>

#20w

資料是沒有重複的,並且邀請碼解

使用者id 也是正確的。

要注意的

$this->key 不能出現數字 0

  1. $this->key 不能有重複的字串。如: abccd  
  2. c
  3. 重複。 關於$this->key

#$this->key 順序可以打亂的,

// $this->key = 'abcdefghjkmnpqrstuvwxyz123456789'; // 没打乱的$this->key = 'kh8sjpdazetnmb5yw7rq4gc9fuv3216x'; // 打乱的
登入後複製
  1. $this->key 長度不限制, 但是最好別太短。

  2. abcd
  3. : 最大的

    用戶id 是4的3次方(256)超過256會怎麼樣?邀請碼變成5位元而已…. ,不好看。
    為使用者體驗,$this->key
    字串別加

    i
  4. o

    l 這些字母,因為容易混淆使用者。 i : l
    l : 1
    o : 0 (當然0
    是不能出現的)很相似。
    Ps

產生的邀請碼位數取決於

使用者id 可以被取模多少次。

範例假設

$this->key = abcd

 那就是4進位了。

如:使用者id

Laravel如何根據用戶id產生四位數唯一邀請碼#255

邀請碼4位數。

256 邀請碼5位數。
500 邀請碼5位數。
(所以對邀請碼位數有限定的話,聰明的你會懂的怎麼辦的吧)

32

進位邀請碼是4位最大用戶id是多少?

32^4 = 1048576

扯淡

Laravel如何根據用戶id產生四位數唯一邀請碼

因為要做邀請碼功能,第一反應:

###百度搜出來程式碼雖然能用,有重複,不理想,就改編別人程式碼了。 ######然後就有這篇文章了。 ###                             ###                

以上是Laravel如何根據用戶id產生四位數唯一邀請碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!