<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> use App\Services\InviteCodeService;
public function register()
{
$this->app->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')->deCode($code); // 邀请码获取用户id
if( $userId != $i)
dd("邀请码解密错误".$i);
$i++;
}
$unique_count = count(array_unique($codes));
dd($unique_count); // 不重复的总数</pre><div class="contentsignin">登入後複製</div></div>
使用者id 也是正確的。
要注意的
$this->key
不能有重複的字串。如: abccd
關於$this->key
// $this->key = 'abcdefghjkmnpqrstuvwxyz123456789'; // 没打乱的$this->key = 'kh8sjpdazetnmb5yw7rq4gc9fuv3216x'; // 打乱的
$this->key
長度不限制, 但是最好別太短。
用戶id 是4的3次方(256)
超過256會怎麼樣?邀請碼變成5位元而已…. ,不好看。 為使用者體驗,
$this->key
字串別加
l
這些字母,因為容易混淆使用者。 i
:
l
l :
1
o :
0 (當然
0
是不能出現的)很相似。
Ps
範例
假設
如:
使用者id
#255
邀請碼4位數。256
邀請碼5位數。 500
邀請碼5位數。
…(所以對邀請碼位數有限定的話,聰明的你會懂的怎麼辦的吧)
進位邀請碼是4位最大用戶id是多少?
扯淡
###百度搜出來程式碼雖然能用,有重複,不理想,就改編別人程式碼了。 ######然後就有這篇文章了。 ### ###
以上是Laravel如何根據用戶id產生四位數唯一邀請碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!