190 likes | 333 Views
Php เงื่อนไข และ การวนซ้ำ Professional Home Page : PHP. เกียรติพงษ์ ยอดเยี่ยมแกร. เครื่องหมายเปรียบเทียบ. Decission : if. การตัดสินใจเลือกทำหรือไม่ทำคำสั่งภายใต้เงื่อนไข PHP จะทำงานคำสั่งนั้นเมื่อผลการทดสอบเงื่อนไงเป็นจริง รูปแบบ if ( expr เงื่อนไข ) { คำสั่ง ; } ตัวอย่าง
E N D
Php เงื่อนไข และ การวนซ้ำProfessional Home Page :PHP เกียรติพงษ์ ยอดเยี่ยมแกร
เครื่องหมายเปรียบเทียบเครื่องหมายเปรียบเทียบ
Decission: if • การตัดสินใจเลือกทำหรือไม่ทำคำสั่งภายใต้เงื่อนไข PHP จะทำงานคำสั่งนั้นเมื่อผลการทดสอบเงื่อนไงเป็นจริง • รูปแบบ • if ( expr เงื่อนไข ) • { คำสั่ง; } • ตัวอย่าง if ($a > $b) Echo “a มากกว่า b”; if ($b < $c) { $c = $b – 5; $b = $c *2; }
Decission : if … else • ทำคำสั่งที่ 1 เมื่อผลการทดสอบเงื่อนไขเป็นจริงหรือทำคำสั่งที่ 2 เมื่อผลการทดสอบเงื่อนไขเป็นเท็จ • รูปแบบ • If ( เงื่อนไข ) • คำสั่งที่ 1; • Else • คำสั่งที่ 2; • เช่น $username = “promlert”; if ($username == “Admin”) Echo “ยินดีต้อนรับ Administrator”; else Echo “ยินดีต้อนรับ User”;
Decision : nested if • การใช้เงื่อนไขแบบซ้อน สามารถเป็นไปได้หลายกรณี แต่ในหนึ่งครั้งจะเป็นไม่ได้เพียงกรณีเดียวเท่านั้น กล่าวคือเมื่อ php ทำการทดสอบเงื่อนไขเป็นจริงแล้ว php จะไม่ทดสอบเงื่อนไขอื่นๆ ใน nested if อีกต่อไป • รูปแบบ If (เงื่อนไข) คำสั่ง 1; Else if ( เงื่อนไข ) คำสั่ง 2; Else if (เงื่อนไข ) คำสั่ง 3; Else คำสั่ง 4;
ตัวอย่าง if .. If01.php <html> <body> <h1> nested if example </h1> <? $score = $HTTP_GET_VARS["score"]; echo "From score = $score point<br>"; if ($score >= 80) { echo "Your grade is A <br>"; echo "<font color='#00FF00'>Very Good</font>"; } else if ($score >= 70) echo "Your grade is B <br>"; else if ($score >= 60) echo "Your grade is C <br>"; else if ($score >= 50) echo "Your grade is D <br>"; else { echo "Your grade is E <br>"; echo "<font color='#F00000'>Oh my god</font>"; } ?> </body> </html> เรียก http://localhost/if01.php?score=75
ตัวอย่าง if … if02.php <html> <body> <h1> nested if example with form</h1> <form method = "GET" action="if02.php"> input score : <input type="text" name="score"><br> <input type="submit" value="Enter"> </form> <? $score = $HTTP_GET_VARS["score"]; echo "From score = $score point<br>"; if ($score != "") if ($score >= 80) { echo "Your grade is A <br>"; echo "<font color='#00FF00'>Very Good</font>"; } else if ($score >= 70) echo "Your grade is B <br>"; else if ($score >= 60) echo "Your grade is C <br>"; else if ($score >= 50) echo "Your grade is D <br>"; else { echo "Your grade is E <br>"; echo "<font color='#F00000'>Oh my god</font>"; } ?> </body> </html>
Decision : Switch • สำหรับทดสอบเงื่อนไขแบบเลือกกระทำโดยที่ตัวแปรสำหรับทดสอบนั้นมีลำดับของค่าอย่างต่อเนื่อง เช่น 1 , 2 , 3 , … , n อย่างใดอย่างหนึ่ง • เงื่อนไขต้องเป็นจำนวนหรือค่าอื่นที่มีลำดับก่อนหลัง • รูปแบบ switch (ตัวแปร) { case ( ค่าตัวแปร ) : คำสั่ง1; break; case ( ค่าตัวแปร ) : คำสั่ง2; break; case ( ค่าตัวแปร ) : คำสั่ง3; break; } • Break สำหรับการบังคับให้ php หยุดการตรวจสอบ case ถัดไป
ตัวอย่าง switch switch($menu) { case 1 : echo "Apple"; break; case 2 : echo "Peach"; break; case 3 : echo "Banana"; break; case 4 : echo "Orange"; break; case 0 : echo “กรุณาเลือก”; break; } ?> </body> </html> <html> <body> Menu of Fruit<br> 1. Apple <br> 2. Peach <br> 3. Banana <br> 4. Oragne <br> <form action="switch01.php" method="GET"> Enter menu <input type="TEXT" name=“fruit"><br> <input type="submit" value="Enter"> </form> <? echo "You choose : "; $menu = $HTTP_POST_VARS[“fruit"];
แบบฝึกหัด • จงเขียนโปรแกรม php แสดงผลเดือนเป็นภาษาไทยโดยให้ php ตรวจจับวันที่ของเครื่อง แล้วแสดงออกมาทางจอภาพ • วันที่ ... เดือน ... พ.ศ. ... • Function ที่เกี่ยวข้อง • $d = date(“d”); • $m = date(“m”); • $y = date(“Y”); • พ.ศ. = ค.ศ. + 543;
การวนซ้ำ (Loop) • เป็นคำสั่งที่เกี่ยวข้องกับการทำงานแบบวนซ้ำ เนื่องจากมีกลุ่มคำสั่งบางกลุ่มต้องทำงานซ้ำหลายครั้ง • เพื่อป้องกันการทำงานแบบไม่รู้จบ ควรตรวจสอบเงื่อนไขการทำซ้ำ • การวนซ้ำสามารถทำซ้อนกันหลายชั้นได้ • กลุ่มคำสั่งทำซ้ำ • while • do … while • for … • foreach
While • รูปแบบ while ( เงื่อนไขการทำซ้ำ ) { คำสั่ง1; คำสั่ง2; } • คำสั่งทำซ้ำโดยทำสั่งภายใต้เครื่องหมาย { } จะถูกทำก็ต่อเมื่อผลการทดสอบเงื่อนไขในวงเล็บหลัง while เป็นจริง คำสั่งวนซ้ำแบบนี้จึงอาจมีจำนวนรอบการทำงานเป็น 0
ตัวอย่าง • while01.php <? echo "Program will display header 5 lines<br>"; echo "Start<br>"; $num = 1; while ($num <= 5) { echo "<H$num>Headingline size $num</H$num><br>"; $num++; } echo "End."; ?>
ตัวอย่าง • While02.php <body> when i is odd color is Green<br> when i is even color is Red<br> <br> <table width=300 border=1 cellpadding=3> <? $i = 1; while ($i <= 20) { if (($i % 2)==0) echo "<tr bgcolor='#F00000'><td> i = $i even </td></tr>"; else echo "<tr bgcolor='#00F000'><td> i = $i odd</td></tr>"; $i++; } ?> </table> </body>
คำสั่ง do …. While ( ) • รูปแบบ do คำสั่ง1; คำสั่ง2; while ( เงื่อนไข ) • โปรแกรมคำสั่งหลัง do จะถูกทำงานก่อนจนหมด เมื่อถึง while ก็จะตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริง ก็จะกลับไปทำซ้ำตั้งแต่ do มาใหม่แต่ถ้าเป็นเท็จก็จะยกเลิกการทำงานออกจาก loop • การวนรอบจะเกิดขึ้นอย่างน้อย 1 รอบเสมอ
ตัวอย่าง • Dowhile01.php <body> <b>Factorial</b><br> <font color='0000F0'>Please enter number to find factorial</font><br> <form method='GET' action='while04.php'> <input type='text' name='number'> <input type='submit' value='Enter'> </form> <? $number = $HTTP_GET_VARS["number"]; echo "Factorial of $number is : "; $fac = 1; do { $fac = $fac * $number; $number--; } while ($number > 1); echo $fac; ?> </body>
For loop • รูปแบบ for (ตัวแปรเริ่มค่าเริ่ม ; เงื่อนไข ;การเพิ่มค่า) { คำสั่ง1; คำสั่ง2; } • มีจำนวนรอบการทำงานคงที่ • ตัวใช้ตัวแปรจำนวนเต็มสำหรับคุมรอบการทำงาน โดยการกำหนดค่าแรกและค่าสุดท้าย การบวกเพิ่มค่า • ทุกๆ รอบตัวแปรคุมรอบจะมีการเปลี่ยนค่าอัตโนมัติ • เช่น for ( $i = 1;$i <= 10;$i++) echo $i;
ตัวอย่าง for <body> <b>Multiply table</b><br> <font color='0000F0'>Please enter number to table</font><br> <form method='GET' action='for01.php'> <input type='text' name='number'> <input type='submit' value='Enter'> </form> <? $number = $HTTP_GET_VARS["number"]; ?> <table border=1 width='150'> <tr><td bgcolor='#CCCCCC'><?=$number;?></td></tr> <? for ($i=1;$i<=12;$i++) { echo "<tr><td> $number X $i = "; echo $i*$number; echo "</td></tr>"; } ?> </table>