PHP: [5] คำสั่งควบคุม (Control statement)
การทำงานตามเงื่อนไข (Conditional execution) คำสั่ง if รูปแบบ if (เงื่อนไข) { คำสั่ง; …… }
การทำงานตามเงื่อนไข (Conditional execution) <html><head> <title>การใช้ if</title> </head><body> <?php $a = 5; $b = -5; $c = 3; if ($a > $b) { echo "\$a มีค่ามากกว่า \$b<br />"; } if ($b > $c) { echo "\$b มีค่ามากกว่า \$c<br />"; ?> </body></html> ex9_01.php
การทำงานตามเงื่อนไข (Conditional execution) คำสั่ง if..else รูปแบบ if (เงื่อนไข) { คำสั่ง; …… } else {
การทำงานตามเงื่อนไข (Conditional execution) <html><head> <title>การใช้ else</title> </head><body> <?php $a = 5; $b = -5; $c = 3; if ($b > $c) { echo "\$b มีค่ามากกว่า \$c<br />"; } else { echo "\$b มีค่าน้อยกว่าหรือเท่ากับ \$c<br />"; ?> </body></html> ex9_02.php
การทำงานตามเงื่อนไข (Conditional execution) คำสั่ง else if รูปแบบ if (เงื่อนไข) { คำสั่ง; …… } else if (เงื่อนไข) {
การทำงานตามเงื่อนไข (Conditional execution) <html><head> <title>การใช้ elseif</title> </head><body> <?php $a = 5; $b = -5; $c = 3; if ($b > $c) { echo "\$b มีค่ามากกว่า \$c<br />"; } //พิมพ์ elseif แบบนี้ก็ได้ else if ($b < $c) { echo "\$b มีค่าน้อยกว่า \$c<br />"; else { echo "\$b มีค่าเท่ากับ \$c<br />"; ?> </body></html> ex9_03.php
การทำงานตามเงื่อนไข (Conditional execution) <html><head> <title>การใช้ elseif</title> </head><body> <?php $value = 58; //ให้ทดลองเปลี่ยนค่าของตัวแปร $value if ($value >= 80) { echo "$value คะแนน ระดับผลการเรียนคือ A"; } else if ($value >= 70 && $value < 80) { echo "$value คะแนน ระดับผลการเรียนคือ B"; else if ($value >= 60 && $value < 70) { echo "$value คะแนน ระดับผลการเรียนคือ C"; else if ($value >= 50 && $value < 60) { echo "$value คะแนน ระดับผลการเรียนคือ D"; else if ($value < 50) { echo "$value คะแนน ระดับผลการเรียนคือ F"; ?> </body></html> ex9_04.php
การทำงานตามเงื่อนไข (Conditional execution) คำสั่ง switch รูปแบบ switch (ตัวแปร/นิพจน์) { case ค่า: คำสั่ง; break; }
การทำงานตามเงื่อนไข (Conditional execution) <html><head> <title>การใช้ switch</title> </head><body> <?php $today = date("D"); //date() เป็นฟังก์ชันสำหรับ อ่านค่าวันในสัปดาห์ echo "วันนี้เป็นวัน"; switch ($today) { case "Sun": echo "อาทิตย์"; break; case "Mon": echo "จันทร์"; break; case "Tue": echo "อังคาร"; break; case "Wed": echo "พุธ"; break; case "Thu": echo "พฤหัสบดี"; break; case "Fri": echo "ศุกร์"; break; case "Sat": echo "เสาร์"; break; } ?> </body></html> ex9_05.php
การทำงานแบบวนซ้ำ (Iteration) คำสั่ง for รูปแบบ for (นิพจน์1; นิพจน์2; นิพจน์3) { คำสั่ง; ……. }
การทำงานแบบวนซ้ำ (Iteration) <html><head> <title>การใช้ for</title> </head><body> <?php for ($num=0; $num<=2; $num++) { echo "$num<br />\n"; } ?> </body></html> ex9_06.php
การทำงานแบบวนซ้ำ (Iteration) <html><head> <title>การใช้ for</title> </head><body> <?php for ($num=0; $num<=30; $num+=3) { echo "[$num] "; } ?> </body></html> ex9_08.php
การทำงานแบบวนซ้ำ (Iteration) คำสั่ง while รูปแบบ while (เงื่อนไข) { คำสั่ง; ……. }
การทำงานแบบวนซ้ำ (Iteration) <html><head> <title>การใช้ while</title> </head><body> <?php /* รหัสแอสกีมีทั้งหมด 256 ค่า คือตั้งแต่ค่า 0 ถึง 255 ในที่นี้เราจะใช้ลูปแบบ while และฟังก์ชั่นchr() แสดงหน้าตาของตัวอักษรที่มีรหัสแอสกีตั้งแต่ 32 ไปจนถึง 255 */ $num = 32; while ($num <= 255) { echo "ASCII code $num = " . chr($num) . "<br />\n"; $num++; } ?> </body></html> ex9_09.php
การทำงานแบบวนซ้ำ (Iteration) คำสั่ง do…while รูปแบบ do { คำสั่ง; ……. } while (เงื่อนไข)
การทำงานแบบวนซ้ำ (Iteration) <html><head> <title>การใช้ do..while</title> </head><body> <?php $num = 32; do { echo "ASCII code $num = " . chr($num) . "<br />\n"; $num++; } while ($num <= 255) ; ?> </body></html> ex9_10.php
การออกจากการทำงาน ใช้ break : ออกจากการทำงานของ for, while, do…while และ switch ใช้ continue : ข้ามการทำงานไป 1 รอบ ของ for, while, do…while ใช้ exit : หยุดการทำงาน ใช้ die : หยุดการทำงาน
การออกจากการทำงาน : break <html><head> <title>การใช้ break</title> </head><body> <?php $mystr = "A"; while ($mystr < "Z") { //ลูปที่ 1 echo "[" . $mystr . "]"; if ($mystr == "H") { break; } $mystr++; echo "<p>เริ่มลูปที่ 2</p>"; for ($num=10; $num>=0; $num-=2) { //ลูปที่ 2 echo "[" . $num . "]"; ?> </body></html> ex9_11.php
การออกจากการทำงาน : continue <html><head> <title>การใช้ continue</title> </head><body> <?php $i = 0; $n = 10; while ($i < $n) //ถ้า i >= n จะออกจาก while { $i++; if ($i%2 == 0) { //ถ้าหาร 2 ไม่มีเศษจะกลับไปเริ่มคำสั่ง while อีกครั้ง continue; } $sum += $i; //sum = sum + i echo "ผลรวมของเลขคี่ระหว่าง 1 ถึง 10 เท่ากับ $sum "; ?> </body></html> ex9_12.php
การออกจากการทำงาน : exit <html><head> <title>การใช้ break</title> </head><body> <?php $mystr = "A"; while ($mystr < "Z") { //ลูปที่ 1 echo "[" . $mystr . "]"; if ($mystr == "H") { exit; } $mystr++; echo "<p>เริ่มลูปที่ 2</p>"; for ($num=10; $num>=0; $num-=2) { //ลูปที่ 2 echo "[" . $num . "]"; ?> </body></html> ex9_13.php
การออกจากการทำงาน : die <html><head> <title>การใช้ break</title> </head><body> <?php $mystr = "A"; while ($mystr < "Z") { //ลูปที่ 1 echo "[" . $mystr . "]"; if ($mystr == "H") { die; } $mystr++; echo "<p>เริ่มลูปที่ 2</p>"; for ($num=10; $num>=0; $num-=2) { //ลูปที่ 2 echo "[" . $num . "]"; ?> </body></html> ex9_14.php
การรับค่าจากผู้ใช้เบื้องต้น การรับค่าจากผู้ใช้ทำได้โดยผ่านแท็ก form รูปแบบ <form action="ไฟล์" method="วิธีส่งข้อมูล" enctype="ประเภทข้อมูล"> input object ต่าง ๆ </form> action= "ไฟล์" กำหนดไฟล์ PHP ที่บราวเซอร์จะเรียกและส่งค่าของ input object ต่าง ๆ ไปให้ประมวลผล method="วิธีส่งข้อมูล" กำหนดวิธีการส่งข้อมูลไปยังเซิร์ฟเวอร์ มี 2 แบบ get เป็นการส่งข้อมูลโดยผนวกชื่อและค่าของ Input object ไปกับ URL (ข้อมูลจะอยู่ในรูปแบบที่เรียกว่า Query String) ไม่เกิน 256 ตัวอักษร และปรากฏข้อมูลที่รับ - ส่ง ในช่อง Address ของ Browser post เป็นการส่งข้อมูลไม่จำกัดจาก Server และไม่ปรากฏข้อมูลที่รับ-ส่ง ในช่อง Address ของ Browser
การรับค่าจากผู้ใช้เบื้องต้น ในแท็ก form จะประกอบด้วย input object ต่าง ๆ เช่น ช่องรับข้อความ (Text field), ช่องรับรหัสผ่าน (Password field), ช่องรับข้อความแบบหลายบรรทัด (Text area), ปุ่มส่งข้อมูล (Submit button), ปุ่มล้างข้อมูล (Reset button) เป็นต้น ในที่นี่จะกล่าวถึงช่องรับข้อความ (Text field) และปุ่มส่งข้อมูล (Submit button) เป็นเบื้องต้นก่อน
การรับค่าจากผู้ใช้เบื้องต้น ช่องรับข้อความ (Text field) รูปแบบ <input type=“text” name=“ชื่อ” size=“ความกว้าง” value=“ค่าเริ่มต้น” maxlength=“จำนวนตัวอักษรสูงสุด” />
การรับค่าจากผู้ใช้เบื้องต้น ปุ่มส่งข้อมูล (Submit button) รูปแบบ <input type=“submit” name=“ชื่อ” value=“ข้อความ” />
การรับค่าจากผู้ใช้เบื้องต้น <html> <head> <title>การใช้ form รับและส่งข้อมูล</title> </head> <body> <form method="get" action="receive01.php"> ตัวเลขที่ 1 <input type= "text" name="num01" /> <br /> ตัวเลขที่ 2 <input type= "text" name="num02" /> <br /> <input type= "submit" value="ส่งข้อมูล" /> </form> </body> </html> input_form01.php
การรับค่าจากผู้ใช้เบื้องต้น method=‘get’ จะเห็นข้อมูลที่มีการส่งผ่านไปยังปลายทาง โดยตัวแปร num01 มีค่า 99 และ num02 มีค่า 199
การรับค่าจากผู้ใช้เบื้องต้น <html> <head> <title>รับข้อมูลจากฟอร์ม</title> </head> <body> <?php echo "เลขที่รับมาตัวที่ 1 คือ $num01 <br />"; echo "เลขที่รับมาตัวที่ 2 คือ $num02 <br />"; ?> </body> </html> receive01.php
การรับค่าที่มีการรักษาความปลอดภัย ใน PHP เวอร์ชั่นที่สูงกว่าเวอร์ชั่น 4.xxx จะมีการป้องกันการโจมตีโดยบังคับให้การรับค่าต้องใช้ตัวแปร HTTP GET Variables และ HTTP POST Variables HTTP GET Variables ใช้รับค่าตัวแปรที่ส่งด้วยวิธี GET HTTP POST Variables ใช้รับค่าตัวแปรที่ส่งด้วยวิธี POST
การรับค่าที่มีการรักษาความปลอดภัย HTTP GET Variables รูปแบบ ตัวแปร = $_GET['ตัวแปรที่ส่งมาด้วยวิธี GET'] หรือ ตัวแปร = $_REQUEST['ตัวแปรที่ส่งมา']
การใช้ $_GET <html> <head> <title>การใช้ form รับและส่งข้อมูล</title> </head> <body> <form method="get" action="receive02.php"> ตัวเลขที่ 1 <input type= "text" name="num01" /> <br /> ตัวเลขที่ 2 <input type= "text" name="num02" /> <br /> <input type="submit" value="ส่งข้อมูล" /> </form> </body> </html> input_form02.php
การใช้ $_GET <html> <head> <title>รับข้อมูลจากฟอร์ม</title> </head> <body> <?php $num01 = $_GET['num01']; $num02 = $_GET['num02']; echo "เลขที่รับมาตัวที่ 1 คือ $num01 <br />"; echo "เลขที่รับมาตัวที่ 2 คือ $num02 <br />"; ?> </body> </html> receive02.php
การรับค่าที่มีการรักษาความปลอดภัย HTTP POST Variables รูปแบบ ตัวแปร = $_POST['ตัวแปรที่ส่งมาด้วยวิธี POST'] หรือ ตัวแปร = $_REQUEST['ตัวแปรที่ส่งมา']
การใช้ $_POST <html> <head> <title>การใช้ form รับและส่งข้อมูล</title> </head> <body> <form method="post" action="receive03.php"> ตัวเลขที่ 1 <input type= "text" name="num01" /> <br /> ตัวเลขที่ 2 <input type= "text" name="num02" /> <br /> <input type= "submit" value="ส่งข้อมูล" /> </form> </body> </html> input_form03.php
การใช้ $_POST <html> <head> <title>รับข้อมูลจากฟอร์ม</title> </head> <body> <?php $num01 = $_POST['num01']; $num02 = $_POST['num02']; echo "เลขที่รับมาตัวที่ 1 คือ $num01 <br />"; echo "เลขที่รับมาตัวที่ 2 คือ $num02 <br />"; ?> </body> </html> receive03.php