20.59 น. - เผยอุบัติเหตุช่วงสงกรานต์สูญเสีย 3 พันล้าน - ไทยรัฐ       ||      20.38 น. - สืบพยานปากสุดท้ายในคดี เจ ไอ - สำนักข่าวไทย       ||      20.20 น. - แถลงการณ์สำนักพระราชวังเรื่อง หม่อมศรีรัศมิ์ เจ็บครรภ์ - สำนักข่าวไทย       ||      19.40 น. - ส.ส.ทรท.จี้ชาติไทยขับ กรณีวุฒิปลอม - ไทยรัฐ       ||      19.20 น. - อภิสิทธิ์ชี้ต้องมีคนผิดกรณีส.ส.กดบัตรแทนกัน - ไทยรัฐ       ||      18.59 น. - “โสภณ” โวย 2 พิธีกร "สมัคร-ดุสิต" ดึงเรื่องทุจริตหนองงูเห่าเป็นผลงานคนกลุ่มวังน้ำยม - เดลินิวส์       ||      18.42 น. - ไทยเตรียมฟ้องสหรัฐฯหากไม่มีสินบนอินวิชั่น - ไทยรัฐ       ||      18.25 น. - ปตท.ปรับลดราคาน้ำมันเบนซิน 30 สต.พรุ่งนี้ - ไทยรัฐ       ||      17:35 น. - หุ้นไทยยังอยู่ในแดนลบต่อเนื่อง ดัชนี-0.36จุด - ไทยรัฐ       ||      17:02 น. - ตำรวจรวบ 2 พี่น้องฆ่าโสเภณีควักตับทอดกิน
แก้ปัญหาคอมพิวเตอร์
 ซ่อมคอม   บทความ คอมพิวเตอร์
 แผนผังกระบวนการแก้ปัญหาคอมพิวเตอร์   การแก้ปัญหาคอมพิวเตอร์
 กลุ่มอาการเสียของคอมพิวเตอร์   อาการเสียของคอมพิวเตอร์
 เรียนลัดคำสั่ง Dos ที่จำเป็น   คำสั่ง Dos เบื้องต้น
 แก้ไขปัญหาในเรื่องทั่วไปบนวินโดวส์  การแก้ไขปัญหาทั่วไป
 แก้ไขปัญหาหนังไม่มีภาพ เพลงไม่มีเสียง  แก้ไขปัญหาดูหนังฟัง เพลงไม่ได้
 แก้ไขปัญหาอุปกรณ์ทำงานผิดพลาด  แก้ปัญหาอุปกรณ์ทำงานผิดพลาด
 ไขปัญหาจุกจิกในการแสดงผล  แก้ปัญหาจุกจิกในการแสดงผล
 การวิเคราะห์และแก้ไขปัญหาเมนบอร์ด  การแก้ไขปัญหาเมนบอร์ด
 วิเคราะห์อาการเสียจากไบออส Award  วิธีแก้อาการเสียจากไบออส Award
 วิเคราะห์อาการเสียจากไบออส AMI  วิธีแก้อาการเสียจากไบออส AMI
 วิเคราะห์อาการเสียจากไบออส Phoenix  วิธีแก้อาการเสียจากไบออส Phoenix
 วิเคราะห์อาการเสียจากการ Post  วิธีแก้อาการเสียจากการ Post
 การแก้ปัญหาครื่องแฮงค์   การแก้ปัญหาครื่องแฮงค์
 การสร้างแผ่น Startup Disk Win 98&ME  การสร้างแผ่น Startup Disk Win 98&ME  การติดตั้ง Font ใหม่ ๆ  ให้ Windows  วิธีติดตั้ง Font ใหม่ ๆ ให้ Windows
 การเข้า Safe Mode แก้ปัญหาซอฟต์แวร์  การเข้า Safe Mode
   อาการเสียของคอมพิวเตอร์
 เทคนิคเจาะระบบ และการปรับแต่ง Windows   เทคนิคเจาะระบบ windows



ตั้งเวปนี้ไว้หน้าแรก
ตั้งเวปนี้ไว้เป็นหน้าแรก

แนะนำติชม

> > z E rO ` S i t e < <
รวมภาพน่ารัก ฟรี sticker vote รวม gallery wallpaper วัยรุ่นน่ารักๆ


Home บทเรียน PHP บทเรียน HTML บทเรียน Perl Java Script บทเรียน Asp
หน้าแรก ช่อง3 ช่อง5 ช่อง7 ช่อง9 ช่อง11 ช่อง ITV ช่อง UBC ส่ง  SMS DTAC Download DirecX
User Online 84 ท่าน     ติดต่อโฆษณา โทร 04-1700841 iqjungjr@hotmail.com       
 
การสร้างเว็บเพจโดยใช้ภาษา PHP บทที่ 13

การทำขั้นตอนซ้ำหรือวนลูป

การวนลูปหรือสร้างลูปเพื่อทำงานซ้ำเป็นส่วนประกอบสำคัญของโปรแกรมคอมพิวเตอร์ ในภาษา PHP ก็จะใช้โครงสร้างเหมือนภาษาซี ดังต่อไปนี้

  • while-do loop
  • do-while loop
  • for-loop
ตัวอย่างการใช้ while-do loop เพื่อคำนวณค่า เลขยกกำลังสอง ซึ่งมีเลขฐานตั้งแต่ 1 ถึง 10
 
<?

$x = 1;
while ($x <= 10) {
  echo $x*$x,"\n";
  $x++;
}

?>

เริ่มต้นด้วยการกำหนดตัวแปร $x ให้มีค่าเป็นหนึ่ง ซึ่งในกรณีนี้ เราใช้เป็นเลขฐาน ในการคำนวณเลขยกกำลังสอง เมื่อเข้าสู่การวนลูปแบบ while-do จะมีการตรวจดูเงื่อนไข ของการวนลูปในแต่ละครั้งว่า เงื่อนไขเป็นจริงอยู่หรือไม่ ในกรณีนี้ เรากำหนดเงื่อนไขในการวนลูปไว้ว่า ถ้าค่าของ $x มีค่าน้อยกว่าหรือเท่ากับ 10 ก็ให้ทำคำสั่งที่อยู่ภายในลูป ซึ่งก็คือ echo $x*$x,"\n"; โดยจะพิมพ์ค่าของผลคูณซึ่งหมายถึงเลขยกกำลังสองนั่นเอง หลังจากนั้น ก็ให้เพิ่มค่าของ $x ทีละหนึ่งในการวนลูปแต่ละครั้ง ค่าของ $x จะเพิ่มขึ้นเรื่อยๆจนมีค่ามากกว่า 10 เมื่อถึงเวลานั้น ก็จะเป็นการจบการวนลูป เพราะว่า เราจะได้ว่า เงื่อนไข ($x <= 10) มีค่าเป็นเท็จ

สมมุติว่า ถ้าเปลี่ยนจาก $x++ เป็น $x--  ปัญหาก็จะเกิดตามมาเวลาใช้งาน คือ แทนที่จะวนลูปแค่สิบครั้ง ก็กลับกลายเป็นว่า เป็นการวนลูปนับครั้งไม่ถ้วน เพราะว่า ค่าของ $x จะลดลงเรื่อยๆในการวนลูปแต่ละครั้ง คือเป็นลบ และค่าเป็นลบจะน้อยกว่า 10 เสมอ (ยกเว้นแต่ว่า เมื่อถึงจุดเวลาหนึ่งค่าเป็นลบมากๆ จะกระโดดกลับเป็นบวก)

ตัวอย่างการใช้ do-while loop เพื่อคำนวณค่าเลขยกกำลังสอง ซึ่งมีเลขฐานตั้งแต่ 1 ถึง 10
 
<?

$x = 1;
do {
  echo $x*$x,"<BR>\n";
  $x++;
} while ($x < 10);

?>

โปรดสังเกตความแตกต่างระหว่างการใช้ while-do และ do-while โดยเฉพาะตรงเงื่อนไข ในการจบการวนลูป ในกรณีของ do-while เราจะกระทำขั้นตอนในลูปก่อนหนึ่งครั้ง แล้วค่อยตรวจดูว่า เงื่อนไขในการวนลูปเป็นจริงหรือไม่ ความแตกต่างนี้ เราสามารถจำได้ง่ายๆ คือว่า ถ้าใช้ do-while จะต้องมีการทำคำสั่ง ภายในลูปหนึ่งครั้งเสมอ แม้ว่าเงื่อนไขโดยเริ่มต้นจะเป็นเท็จก็ตาม ซึ่งแตกต่างจาก while-do ถ้าเงื่อนไขเป็นเท็จตั้งแต่เริ่ม ก็จะไม่มีการทำคำสั่งที่อยู่ในลูป

อีกแบบหนึ่งสำหรับการวนลูปคือใช้ for-loop ทำได้ตามตัวอย่างต่อไปนี้
 
<?

for ($x = 1; $x <=10; $x++) {
  echo $x*$x,"<BR>\n";
}

?>

ในบรรทัดที่เริ่มต้นด้วย for ระหว่างวงเล็บเปิดและปิด จะถูกแบ่งเป็นสามส่วนโดยเครื่องหมาย semicolon (;) ในส่วนแรกเราสามารถใส่คำสั่งที่ต้องการจะกระทำก่อนเข้าลูป ส่วนแรกนี้จะมีหรือไม่มีก็ได้ ในส่วนที่สองจะเป็นเงื่อนไขสำหรับการทำ loop และในส่วนที่สามจะคำสั่งที่จะต้องทำเป็นการจบท้ายลูปในแต่ละครั้ง หลักการทำงานของ for-loop จะคล้ายกับ  while-do-loop

การใช้งาน for-loop และวางตำแหน่งส่วนต่างๆ อาจจะไม่จำเป็นต้องทำเหมือนกันแต่ให้ผลเหมือนกัน เช่น
 
<?

$x=1;
for ( ; $x <=10; $x++) {
  echo $x*$x,"<BR>\n";
}

$x=1;
for ( ; $x <=10; )  {
  echo $x*$x,"<BR>\n";
  $x++;
}

?>

จากตัวอย่างข้างบนที่ผ่านๆมา เป็นการวนลูปจะใช้การนับเลขเพิ่มขึ้นทีละหนึ่ง เรายังสามารถเขียนใหม่โดยเป็นการนับเลขลดลง ยกตัวอย่างเช่น เราต้องการจะพิมพ์ตัวเลขเรียงลำดับจาก 10,9,8...,1 ก็อาจจะเขียนคำสั่งได้ดังนี้

<?

for ($x=10 ; $x >0; $x--)  {
    echo $x,"<BR>\n";
}

?>

การใช้งาน for-loop ก็จะเหมือนกับเวลาใช้ในภาษาซี ในหลายๆเรื่อง เช่น เราสามารถใส่คำสั่งได้ มากกว่าหนึ่งโดยใช้เครื่องหมาย (,) เป็นตัวแยก ตัวอย่างเช่น

<?

for ($x=1, $y=0 ; $x < 10; $x++, $y--)  {
    echo "$x $y<BR>\n";
}

?>



Home | บทเรียน PHP | บทเรียน HTML | บทเรียน Perl | Java Script | บทเรียน Asp |
ติดต่อ webmaster   © 2005 Inc.Thailand Allright Reserved iqjung International Co., Ltd. Design by iqjung :800*600 Resolution IE 5.5 Up ^^