บทที่ 25 การใช้ฟังก์ชัน เพื่อสร้างตัวเลขแบบสุ่ม

การใช้ฟังก์ชันเพื่อสร้างตัวเลขแบบสุ่ม หรือ random number generator จะคล้ายกับของภาษาซี คือ เริ่มต้นด้วย srand () โดยจะต้องผ่านค่าที่เรียกว่า seed ซึ่งเป็นเลขจำนวนเต็มใดๆก็ได้ก่อน โดยทั่วไปจะใช้ค่าของเวลาในหน่วยวินาที หรือ Time Stamp ซึ่งสามารถอ่านได้จากฟังก์ชัน date("s") (s หมายถึง second หรือหน่วยวินาที) โดยผ่านค่านี้เป็นค่าของ seed จากนั้นจึงค่อยเรียกใช้ rand()

ตัวอย่างการใช้งาน
 

ไฟล์ตัวอย่าง :: code_ex1.php
<?php
srand( date("s") );
for ($i=0; $i < 10; $i++) {
  $x = rand() % 10;
  echo $x,"  ";
}
?>

คำสั่งนี้จะสร้างตัวเลขโดยการสุ่มเลือกเป็นจำนวน 10 ตัวเลข และพิมพ์ออกทางเอาพุต

ตัวอย่างการใช้งานเพิ่มเติมในรูปของฟังก์ชัน
 

ไฟล์ตัวอย่าง :: code_ex2.php
<?php
function randInt($low,$high) {
  srand ( date("s") );
  $range = $high - $low;
  $num = (rand() % $range) + $low;
  return $num;
}
?>

ตัวอย่างนี้จะสร้างตัวเลขโดยสุ่มที่อยู่ระหว่างเลขจำนวนเต็มสองค่า และเงื่อนไขของการใช้ฟังก์ชันนี้คือ $low จะต้องมีค่าน้อยกว่า $high และทั้งสองต้องเป็นเลขจำนวนเต็ม

ตัวอย่างการใช้งานเพิ่มเติมในรูปของฟังก์ชันเพิ่มเติม
 

ไฟล์ตัวอย่าง :: code_ex3.php
<?php
function randStr($len) {
srand ( date("s") );
$ret_str ="";
for ($i=0; $i < $len; $i++) {
$ret_str .= chr( (rand() % 26)+97 );
}
return $ret_str;
}
echo randStr(40);
?>

ตัวอย่างนี้จะสร้างสตริงค์แบบสุ่มที่มีความยาวตามที่กำหนดและสร้างขึ้นจากตัวอักขระภาษาอังกฤษ

หัวเรื่อง
บทที่ 25 การใช้ฟังก์ชัน เพื่อสร้างตัวเลขแบบสุ่ม
หมวดหมู่
PHP Basics, PHP Basics
ฮิต
39582
ผู้สร้างเอกสาร
thatsawan
วันที่สร้างเอกสาร
2014-05-13 19:18:41

chapter_25.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 991 bytes

ผู้อัพโหลดไฟล์ thatsawan

วันที่อัพโหลด 2014-04-21 14:41:42




กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
หน้าแสดงผล ของ bot
โดย mindphp อ 09 ก.ย. 2012 9:42 am บอร์ด Msearch V2
2
9
อ 11 ก.ย. 2012 5:50 pm โดย mindphp View Topic หน้าแสดงผล ของ bot
สอบถาม การลบไฟล์ .exe ที่ทำงานอยู่ด้วย PHP ครับ
โดย Chayyim พฤ 06 ก.ย. 2012 7:58 pm บอร์ด Programming - PHP
4
2940
จ 10 ก.ย. 2012 11:35 pm โดย Chayyim View Topic สอบถาม การลบไฟล์ .exe ที่ทำงานอยู่ด้วย PHP ครับ
ช่วยผมเขียนฟังก์ชั้นสลับค่าหน่อยนะครับ ผมรีบทำไม่ทันแล้ว
โดย birdzanarak ส 08 ก.ย. 2012 10:59 pm บอร์ด Programming - C/C++ & java & Python
0
5145
ส 08 ก.ย. 2012 10:59 pm โดย birdzanarak View Topic ช่วยผมเขียนฟังก์ชั้นสลับค่าหน่อยนะครับ ผมรีบทำไม่ทันแล้ว
วิธีการติดตั้ง Microsoft SQL Server 2008 R2 SP2 Express บน Windows XP 32bit
โดย tsukasaz ส 08 ก.ย. 2012 6:20 pm บอร์ด Share Knowledge
4
23522
จ 11 พ.ย. 2013 4:38 pm โดย iPhone View Topic วิธีการติดตั้ง Microsoft SQL Server 2008 R2 SP2 Express บน Windows XP 32bit
YouTube Downloader สุดยอดโปรแกรมดูดไฟล์
โดย pipat55 ส 08 ก.ย. 2012 4:34 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
4692
ส 08 ก.ย. 2012 4:34 pm โดย pipat55 View Topic YouTube Downloader  สุดยอดโปรแกรมดูดไฟล์
.Avira Free Antivirus
โดย pipat55 ส 08 ก.ย. 2012 4:30 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
3
2466
ศ 28 ธ.ค. 2012 9:40 am โดย khitk View Topic .Avira Free Antivirus
Kingsoft Antivirus 2012 SP5 กำจัดไวรัสให้เกลี้ยง
โดย pipat55 ส 08 ก.ย. 2012 4:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
1915
พฤ 27 ก.ย. 2012 1:48 pm โดย suntiiii View Topic Kingsoft Antivirus 2012 SP5 กำจัดไวรัสให้เกลี้ยง
K-Lite Codec Pack เป็นโปรแกรมสำหรับเล่นไฟล์วิดีโอได้ทุกชนิด
โดย pipat55 ส 08 ก.ย. 2012 4:22 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
2293
ส 08 ก.ย. 2012 4:22 pm โดย pipat55 View Topic K-Lite Codec Pack เป็นโปรแกรมสำหรับเล่นไฟล์วิดีโอได้ทุกชนิด