最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP也能干大事 隨機(jī)函數(shù)

 更新時(shí)間:2015年04月14日 21:24:06   投稿:mdxy-dxy  
這篇文章主要介紹了PHP也能干大事 隨機(jī)函數(shù),需要的朋友可以參考下

寫在前面

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

二、前言

PHP是常見的腳本語言,主要是因?yàn)槠浜唵我讓W(xué),上手快,幾乎50%以上的Web程序都有PHP的身影(不完全統(tǒng)計(jì))。PHP為開發(fā)這提供了豐富的函數(shù)和API接口,這使得我們能夠非常方便地使用其強(qiáng)大的內(nèi)置函數(shù)及擴(kuò)展,本文是《PHP也能干大事》系列的第二篇,主要總結(jié)PHP在隨機(jī)數(shù)生成器方面的知識(shí)。

三、PHP隨機(jī)函數(shù)

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

1、rand產(chǎn)生隨機(jī)數(shù):

<?php
$base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$count = strlen($base);
$random = '';
for ($i=0; $i < 16; $i++) { 
 $random.=$base[rand(0,$count-1)];
}
echo $random;
?>

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

getrandmax()函數(shù)可以返回rand函數(shù)能夠產(chǎn)生的最大的隨機(jī)數(shù)(我的系統(tǒng)為32767),所以在設(shè)置rand函數(shù)第二個(gè)參數(shù)時(shí)不要超高getrandmax的返回值。

2、mt_rand產(chǎn)生隨機(jī)數(shù):

<?php
$base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$count = strlen($base);
$random = '';
for ($i=0; $i < 16; $i++) { 
 $random.=$base[mt_rand(0,$count-1)];
}
echo $random;
?>

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

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

3、array_rand函數(shù)

<?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 < 16; $i++) { 
 $random.=$base[array_rand($base)];
}
echo $random;
?> 

array_rand返回?cái)?shù)組中隨機(jī)的鍵值,有點(diǎn)類似mt_rand()函數(shù),其余的沒什么特殊的地方,靈活運(yùn)用而已。

4、shuffle函數(shù)

<?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函數(shù)是打亂一個(gè)數(shù)組的序列,有點(diǎn)隨機(jī)的意思,這里就放在隨機(jī)函數(shù)里了。返回值為bool值,相當(dāng)于直接引用了原變量。

5、str_shuffle函數(shù)

<?php
$base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
echo str_shuffle($base);
?>

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

6、uniqid函數(shù)

<?php
echo uniqid();
//54f806528172f
?>

uniqid能夠產(chǎn)生唯一的字符串,這個(gè)應(yīng)用的范圍可以相當(dāng)廣泛

四、總結(jié)
隨機(jī)函數(shù)幾乎是每種語言最基本的功能,PHP對(duì)于隨機(jī)函數(shù)的支持也不例外,這里介紹了rand、mt_rand、array_rand、shuffle、str_shuffle、uniqid函數(shù)的基本用法,更多可以結(jié)合實(shí)際應(yīng)用靈活運(yùn)用。

相關(guān)文章

  • php錯(cuò)誤、異常處理機(jī)制(補(bǔ)充)

    php錯(cuò)誤、異常處理機(jī)制(補(bǔ)充)

    異常處理: 意外,是在程序運(yùn)行過程中發(fā)生的意料這外的事,使用異常改變腳本正常流程
    2012-05-05
  • WordPress中郵件的一些修改和自定義技巧

    WordPress中郵件的一些修改和自定義技巧

    這篇文章主要介紹了WordPress中郵件的一些修改和自定義技巧,包括更改郵件為HTML形式以及定義SMTP郵件的發(fā)件人的方法,需要的朋友可以參考下
    2015-12-12
  • PHP使用Reli分析性能,生成PHP性能火焰圖

    PHP使用Reli分析性能,生成PHP性能火焰圖

    Reli 是一個(gè)用PHP編寫的采樣分析器(或VM狀態(tài)檢查器),它可以從進(jìn)程外部讀取有關(guān)運(yùn)行PHP腳本的信息,它是一個(gè)獨(dú)立的CLI工具,因此目標(biāo)程序不需要任何修改,檢測和可視化PHP腳本中的瓶頸,它不僅提供函數(shù)級(jí)的分析,而且還提供行級(jí)或操作碼級(jí)的解析
    2024-01-01
  • java解析json方法總結(jié)

    java解析json方法總結(jié)

    在本篇文章中小編給大家總結(jié)了關(guān)于java解析json方法總結(jié)以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-05-05
  • PHP中round()函數(shù)對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入的方法

    PHP中round()函數(shù)對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入的方法

    這篇文章主要介紹了PHP中round()函數(shù)對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入的方法,通過詳盡的實(shí)例對(duì)round()函數(shù)的各種常見用法進(jìn)行了歸納整理,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • 讓Nginx支持ThinkPHP的URL重寫和PATHINFO的方法分享

    讓Nginx支持ThinkPHP的URL重寫和PATHINFO的方法分享

    ThinkPHP支持通過PATHINFO和URL rewrite的方式來提供友好的URL,只需要在配置文件中設(shè)置 'URL_MODEL' => 2 即可。在Apache下只需要開啟mod_rewrite模塊就可以正常訪問了,但是Nginx中默認(rèn)是不支持PATHINFO的,所以我們需要修改nginx.conf文件。
    2011-08-08
  • php 團(tuán)購折扣計(jì)算公式

    php 團(tuán)購折扣計(jì)算公式

    php 團(tuán)購折扣計(jì)算公式,因?yàn)樽罱枰{(diào)用天天團(tuán)購程序的數(shù)據(jù),代碼比較不好找,所以直接自己寫個(gè)代碼讀取mysql的數(shù)據(jù)。
    2011-11-11
  • ThinkPHP基于think-queue的隊(duì)列插件實(shí)現(xiàn)消息推送

    ThinkPHP基于think-queue的隊(duì)列插件實(shí)現(xiàn)消息推送

    think-queue是ThinkPHP官方提供的一個(gè)消息隊(duì)列服務(wù),是專門支持隊(duì)列服務(wù)的擴(kuò)展包。think-queue消息隊(duì)列適用于大并發(fā)或返回結(jié)果時(shí)間比較長且需要批量操作的第三方接口,可用于短信發(fā)送、郵件發(fā)送、APP推送。
    2022-12-12
  • PHP5中使用mysqli的prepare操作數(shù)據(jù)庫的介紹

    PHP5中使用mysqli的prepare操作數(shù)據(jù)庫的介紹

    今天小編就為大家分享一篇關(guān)于PHP5中使用mysqli的prepare操作數(shù)據(jù)庫的介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • php 文件狀態(tài)緩存帶來的問題

    php 文件狀態(tài)緩存帶來的問題

    當(dāng)使用以下函數(shù)時(shí),會(huì)因?yàn)槲募顟B(tài)緩存,導(dǎo)致結(jié)果錯(cuò)誤
    2008-12-12

最新評(píng)論

盐边县| 布尔津县| 长治市| 临夏县| 丹寨县| 康保县| 河池市| 洛隆县| 平昌县| 澳门| 马龙县| 闽侯县| 苍梧县| 大英县| 凤庆县| 乌兰县| 崇明县| 保定市| 和林格尔县| 张家界市| 广饶县| 永嘉县| 搜索| 泽库县| 赣榆县| 孟连| 疏附县| 新绛县| 嘉禾县| 新民市| 长葛市| 仙游县| 天津市| 德钦县| 巴东县| 田阳县| 阿拉善左旗| 广丰县| 连平县| 绥化市| 襄樊市|