国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP也能干大事 隨機函數

2024-05-04 23:34:15
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP也能干大事 隨機函數,需要的朋友可以參考下

寫在前面

PHP也能干大事是我總結的PHP語法特性及相關函數類庫的經典用法,并不一定是真正能實現四兩撥千斤的功效,但是掌握這些方法,可以在你的工作和學習上有一些幫助,希望大家能集思廣益,將《PHP也能干大事》豐富得更精彩!轉載請注明出處(3mc2.com)

二、前言

PHP是常見的腳本語言,主要是因為其簡單易學,上手快,幾乎50%以上的Web程序都有PHP的身影(不完全統計)。PHP為開發這提供了豐富的函數和API接口,這使得我們能夠非常方便地使用其強大的內置函數及擴展,本文是《PHP也能干大事》系列的第二篇,主要總結PHP在隨機數生成器方面的知識。

三、PHP隨機函數

PHP隨機函數主要有rand、mt_rand、array_rand,還有隨機“排列”(打亂順序)的函數shuffle、str_shuffle,能夠產生唯一ID的uniqid。

1、rand產生隨機數:

 

 
  1. <?php 
  2. $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  3. $count = strlen($base); 
  4. $random = ''
  5. for ($i=0; $i < 16; $i++) {  
  6. $random.=$base[rand(0,$count-1)]; 
  7. echo $random
  8. ?> 

rand()函數是使用libc 的隨機數發生器生成隨機數的,一般較慢,且有不確定因素,建議使用mt_rand函數替代。

getrandmax()函數可以返回rand函數能夠產生的最大的隨機數(我的系統為32767),所以在設置rand函數第二個參數時不要超高getrandmax的返回值。

2、mt_rand產生隨機數:

 

 
  1. <?php 
  2. $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  3. $count = strlen($base); 
  4. $random = ''
  5. for ($i=0; $i < 16; $i++) {  
  6. $random.=$base[mt_rand(0,$count-1)]; 
  7. echo $random
  8. ?> 

很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數默認使用 libc 隨機數發生器。mt_rand() 函數是非正式用來替換它的。該函數用了 » Mersenne Twister 中已知的特性作為隨機數發生器,它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。強烈建議在開發過程中使用mt_rand函數取代rand。

如果沒有提供可選參數 min 和 max,mt_rand() 返回 0 到 mt_getrandmax() 之間的偽隨機數。例如想要 3到 20(包括 3 和 20)之間的隨機數,用 mt_rand(3, 20)。

3、array_rand函數

 

 
  1. <?php 
  2. $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); 
  3.  
  4. $random = ''
  5. for ($i=0; $i < 16; $i++) {  
  6. $random.=$base[array_rand($base)]; 
  7. echo $random
  8. ?> 

array_rand返回數組中隨機的鍵值,有點類似mt_rand()函數,其余的沒什么特殊的地方,靈活運用而已。

4、shuffle函數

 

 
  1. <?php 
  2. $base = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'); 
  3. if(shuffle($base)){ 
  4. print_r($base); 
  5. ?> 

shuffle函數是打亂一個數組的序列,有點隨機的意思,這里就放在隨機函數里了。返回值為bool值,相當于直接引用了原變量。

5、str_shuffle函數

 

 
  1. <?php 
  2. $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  3. echo str_shuffle($base); 
  4. ?> 

這里str_shuffle的功能和shuffle的功能是類似的,唯一不同的是返回值,str_shuffle的原字符串是不變的。

6、uniqid函數

 

 
  1. <?php 
  2. echo uniqid(); 
  3. //54f806528172f 
  4. ?> 

uniqid能夠產生唯一的字符串,這個應用的范圍可以相當廣泛

四、總結

隨機函數幾乎是每種語言最基本的功能,PHP對于隨機函數的支持也不例外,這里介紹了rand、mt_rand、array_rand、shuffle、str_shuffle、uniqid函數的基本用法,更多可以結合實際應用靈活運用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂源县| 保定市| 塘沽区| 常熟市| 梅河口市| 阿克| 陇南市| 定结县| 巴塘县| 德惠市| 焦作市| 乌拉特中旗| 化州市| 山丹县| 长顺县| 通江县| 灌阳县| 宜黄县| 长子县| 扎鲁特旗| 嘉善县| 泰州市| 逊克县| 册亨县| 桐乡市| 成武县| 镇雄县| 思茅市| 甘孜县| 耒阳市| 山东| 公主岭市| 宁武县| 博乐市| 慈溪市| 麻栗坡县| 绥滨县| 阳谷县| 历史| 新河县| 观塘区|