寫在前面
html' target='_blank'>PHP語法特性及相關函數類庫的經典用法,并不一定是真正能實現四兩撥千斤的功效,但是掌握這些方法,可以在你的工作和學習上有一些幫助!
二、前言
PHP是常見的腳本語言,主要是因為其簡單易學,上手快,幾乎50%以上的Web程序都有PHP的身影(不完全統計)。PHP為開發這提供了豐富的函數和API接口,這使得我們能夠非常方便地使用其強大的內置函數及擴展。
三、PHP隨機函數
PHP隨機函數主要有rand、mt_rand、array_rand,還有隨機“排列”(打亂順序)的函數shuffle、str_shuffle,能夠產生唯一ID的uniqid。
1、rand產生隨機數:
?php$base = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 $count = strlen($base);$random = for ($i=0; $i $i++) { $random.=$base[rand(0,$count-1)];echo $random;?
rand()函數是使用libc 的隨機數發生器生成隨機數的,一般較慢,且有不確定因素,建議使用mt_rand函數替代。
getrandmax()函數可以返回rand函數能夠產生的最大的隨機數(我的系統為32767),所以在設置rand函數第二個參數時不要超高getrandmax的返回值。
2、mt_rand產生隨機數:
?php$base = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 $count = strlen($base);$random = for ($i=0; $i $i++) { $random.=$base[mt_rand(0,$count-1)];echo $random;?
很多老的 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函數
?php$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 $random = for ($i=0; $i $i++) { $random.=$base[array_rand($base)];echo $random;?
array_rand返回數組中隨機的鍵值,有點類似mt_rand()函數,其余的沒什么特殊的地方,靈活運用而已。
4、shuffle函數
?php$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 if(shuffle($base)){ print_r($base);?
shuffle函數是打亂一個數組的序列,有點隨機的意思,這里就放在隨機函數里了。返回值為bool值,相當于直接引用了原變量。
5、str_shuffle函數
?php$base = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 echo str_shuffle($base);?
這里str_shuffle的功能和shuffle的功能是類似的,唯一不同的是返回值,str_shuffle的原字符串是不變的。
6、uniqid函數
?phpecho uniqid();//54f806528172f?
uniqid能夠產生唯一的字符串,這個應用的范圍可以相當廣泛
四、總結
隨機函數幾乎是每種語言最基本的功能,PHP對于隨機函數的支持也不例外,這里介紹了rand、mt_rand、array_rand、shuffle、str_shuffle、uniqid函數的基本用法,更多可以結合實際應用靈活運用。
總結:以上就是本篇文的全部內容,希望能對大家的學習有所幫助。
相關推薦:
php針對錯誤處理的常用技巧
php實現web服務的方法
php根據數組動態創建html代碼的的方法
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答