บทที่ 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
ฮิต
39572
ผู้สร้างเอกสาร
thatsawan
วันที่สร้างเอกสาร
2014-05-13 19:18:41

chapter_25.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 991 bytes

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

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




กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Check Box รบกวนช่วยดูโค๊ดให้ทีค่ะ
โดย Mbenjarat ศ 16 ก.ค. 2010 1:03 pm บอร์ด Programming - PHP
2
1510
ศ 16 ก.ค. 2010 10:16 pm โดย mindphp View Topic Check Box รบกวนช่วยดูโค๊ดให้ทีค่ะ
treemenu กับ frame
โดย rawat2006 ศ 16 ก.ค. 2010 2:55 pm บอร์ด JavaScript & jQuery Ajax & Node.JS
1
3970
ศ 16 ก.ค. 2010 10:15 pm โดย mindphp View Topic treemenu กับ frame
แก้ไขยังไงดีครับ หน้าเวปผมมีคำเตือนนี้มา...
โดย aneknoy พฤ 15 ก.ค. 2010 9:34 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
19
3399
พ 21 ก.ค. 2010 10:49 pm โดย mindphp View Topic แก้ไขยังไงดีครับ หน้าเวปผมมีคำเตือนนี้มา...
แจก โปรแกรมคุยโทรศัพท์ผ่านอินเตอร์เน็ต ซ้ำขออภัย
โดย dingdong ศ 16 ก.ค. 2010 11:07 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
2926
ศ 16 ก.ค. 2010 11:07 am โดย dingdong View Topic แจก โปรแกรมคุยโทรศัพท์ผ่านอินเตอร์เน็ต ซ้ำขออภัย
อยากได้ตัวอย่าง การเขียนโปรแกรมภาษาซี โดยใช้ฟังค์ชั่งสุ่มอะค่ะ ส่งอาจารย์
โดย myfon11 พฤ 15 ก.ค. 2010 11:40 am บอร์ด Web Hosting Review - Free Host Share Host VPS
1
4992
ศ 16 ก.ค. 2010 1:42 am โดย imsn View Topic อยากได้ตัวอย่าง การเขียนโปรแกรมภาษาซี โดยใช้ฟังค์ชั่งสุ่มอะค่ะ ส่งอาจารย์
จดโดเมน 299 บาทต่อปี!! Hosting Unlimited Package 2000 บาทต่อปี (แบ่งได้ 4 โดเมน)
โดย aomiez พฤ 15 ก.ค. 2010 2:05 am บอร์ด Web Hosting Review - Free Host Share Host VPS
0
1488
พฤ 15 ก.ค. 2010 2:05 am โดย aomiez View Topic จดโดเมน 299 บาทต่อปี!! Hosting Unlimited Package 2000 บาทต่อปี (แบ่งได้ 4 โดเมน)
login แบบไหนดี session cookie เทพมาตอบทีครับ
โดย Anonymous พ 14 ก.ค. 2010 6:50 pm บอร์ด Programming - PHP
3
2634
พ 03 พ.ย. 2010 4:34 pm โดย บุคคลทั่วไป View Topic login แบบไหนดี session cookie เทพมาตอบทีครับ
ขอความช่วยเหลือครับjoomla 1.5.15 สร้าง section กับ catogory ภาษไทยเป็น ???
โดย Slarom พ 14 ก.ค. 2010 5:05 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
1035
พ 14 ก.ค. 2010 5:08 pm โดย mindphp View Topic ขอความช่วยเหลือครับjoomla 1.5.15 สร้าง section กับ catogory ภาษไทยเป็น ???