เงื่อนไข? (if) ผมขออธิบายโดยการยกตัวอย่างเลยนะครับ
“ถ้าวันนี้ฝนไม่ตก ผมจะออกไปซื้อของข้างนอก แต่ถ้าวันนี้ฝนตก ผมจะนอนอยู่บนเตียง”
มองออกไหมครับ ว่าข้อความข้างบน ตรงไหนคือ เงื่อนไข ?
คำว่า “ถ้าวันนี้ฝนไม่ตก” กับ “แต่ถ้าวันนี้ฝนไม่ตก” คือเงื่อนไขครับ ส่วนคำว่า “ผมจะออกไปซื้อของข้างนอก” กับ “ผมจะนอนอยู่บนเตียง” คือ เหตุการณ์ที่เกิดขึ้นเมื่อเป็นไปตามเงื่อนไขที่กำหนดครับ
ตัวแปรที่เกี่ยวกับข้อความที่กล่าวมา มีอะไรบ้าง?
1. ผม คือ ตัวบุคคล หรือ คน
2. ฝน คือ สิ่งกำเนิดเงื่อนไข หมายถึง ฝนตก หรือ ไม่ตก นั้นเอง
เมื่อนำมาเขียนเป็นภาษา PHP จะได้ดังนี้
$me_sleep = “ผมจะนอนอยู่บนเตียง”;
$me_go = “ผมจะออกไปซื้อของข้างนอก”;
$rain = “ฝนไม่ตก”;
if($rain == “ฝนตก”)
{
echo $me_sleep;
}
else
{
echo $me_go;
}
?>
จากตัวอย่าง code PHP ข้างบนเป็นเพียงตัวอย่าง ที่แสดงให้เห็นถึงความเกี่ยวข้องระหว่าง เงื่อนไขในชิวิตประจำวัน กับ ภาษา PHP นะครับผมจะยังไม่อธิบายรายละเอียด ของ code นี้ แต่จะแนะนำ สิ่งที่ควรรู้ก่อนที่จะเริ่มเขียน PHP ครับ
ตัวดำเนินการ เปรียบเทียบ กับเงือนไขในภาษา PHP (บางส่วน)
== (เท่ากับ) ตัวอย่าง if($a == $b){ “สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
!= (ไม่เท่ากับ) ไม่เท่ากัน ไม่ใช่ ไม่เหมือน ตัวอย่าง if($a != $b) {“สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
> (มากกว่า) มีค่ามากกว่า ตัวอย่าง if($a > $b){“สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
< (น้อยกว่า) มีค่าน้อยกว่า ตัวอย่าง ($a < $b){“สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
and หรือ && (และ) ตัวอย่าง if($a == $b and $a == $c){ “สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
or หรือ || (หรือ) ตัวอย่าง if($a == $b or $a == $c){ “สิ่งที่ต้องการให้เกิดขึ้นเมื่อตรงตามเงื่อนไข” }
*มือใหม่หลายคน รวมทั้งผมนะครับ จะสับสน และใช้ผิดบ่อยๆ ระหว่าง การกำหนดตัวแปร กับ การสร้างเงื่อนไข ตอนใช้ = เท่ากับ
เพราะหากเราตั้งตัวแปร เราจะใช้ = (เท่ากับตัวเดียว) แต่หากจะสร้างเงื่อนไข จะใช้ == (เท่ากับ เท่ากับ) อย่าใช้สับสนนะครับ
เอาละครับ ต่อไปจะเป็นการยกตัวอย่าง เงื่อนไขแบบง่ายๆ คือ โปรแกรม แยกตัวเลข คู่ หรือ ตัวเลข คี่ นะครับ
ขั้นที่ 1 สร้าง form เพื่อรับค่าตัวเลขจากผู้ใช้ 1 ค่าแล้วบันทึกไฟล์ไว้ที่ XXX:\AppServ\www\lesson3\test.php ดังรูปตัวอย่าง ที่ 1
<input type=”text” name=”number” id=”number” />
<input type=”submit” name=”button” id=”button” value=”ตัวเลขตัวนี้คือ…” />
</form>
<input name=”number” type=”text” id=”number” value=”<?=$_POST[‘number’]?>” />
<input type=”submit” name=”submit” id=”submit” value=”ตัวเลขตัวนี้คือ…” />
<?
if($_POST[‘submit’])
{
$number = $_POST[‘number’];
$ModNumber = $number%2;
if($ModNumber == 0)
{
echo “มีค่าเป็นเลขคู่”;
}
else
{
echo “มีค่าเป็นเลขคี่”;
}
}
?>
</form>
ขั้นที่ 3 ทดลองโปรแกรม โดยการบันทึกไฟล์และเรียกโปรแกรมแยกเลขคู่หรือคี่ ที่ http://localhost/lesson3/test.php
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 10 <input name=”number” type=”text” id=”number” value=”<?=$_POST[‘number’]?>” />สังเกตจะมี PHP แทรกมาใน value=”<?=$_POST[‘number’]?> ตัวนี้จะเป็นการกำหนดค่าที่อยู่ใน textbox ให้แสดงค่าที่ POST มาครับ เช่นถ้าเรากรอกตัวเลข 13 แล้วกดปุ่ม “ตัวเลขตัวนี้คือ” ในช่องกรอกตัวเลขก็จะแสดงเลข 13 ขึ้นมาครับ
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 12 และ 26 คือการเปิด และ ปิดการทำงานของภาษา PHP
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 13 คือการสร้างเงื่อนไขเมื่อกดปุ่ม “ตัวเลขนี้คือ…” ที่ชื่อ submit
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 15 คือ ตั้งตัวแปร $number ใ้ห้มีค่าเท่ากับ ค่าที่ส่งมาจาก form1 ที่ชื่อ number
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 16 คือ ตั้งตัวแปร $ModNumber ใ้ห้มีค่าเท่ากับ $number%2 ซึ่งถ้ากรอกเลข 13 ในช่อง number ก็จะ ได้ค่า $ModNumber = 13 หารด้วยสอง เหลือ เศษ 1 จะได้ค่าเป็น 1
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 17 คือ การกำหนดเงื่อนไข ตรวจสอบค่า $ModNumber ว่าเท่ากับ 0 หรือไม่
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 18 – 20 คือขอบเขตของเงื่อนไขตามบรรทัดที่ 17 และ แสดงผลคำว่า “มีค่าเป็นเลขคู่”
จากรูปที่ 2 โปรแกรมแยกเลขคู่หรือคี่ บรรทัดที่ 21 – 24 คือขอบเขตที่นอกเหนือจากเงื่อนไขตามบรรทัดที่ 17 และ แสดงผลคำว่า “มีค่าเป็นเลขคี่”
จากตัวอย่างที่กล่าวมาบางท่านอาจจะยังไม่เข้าใจ แต่ ไม่เป็นไรครับ ผมมีอีกตัวอย่าง ให้ท่านได้ทำความเข้าใจอีกครับ
ตัวอย่างต่อไปนี้จะเป็นโปรแกรม กำออกเกรดนะครับ การทำงานของโปรแกรมก็ใ้ช้ขั้นตอนง่ายๆโดยการกรอกคะแนนรวม ที่มีตั้งแต่ 0 – 100 เพื่อออกเกรด ซึ่งเกรด ในระดับ มัธยมหรืออดุมส่วนใหญ่ก็จะเป็น 8 เกรด ได้แก่ 0 , 1 , 1.5 , 2 , 2.5 , 3 , 3.5 , 4 แต่ผมคิดว่ามันเยอะไป ขอแค่ 5 พอ ครับ คือ 0 , 1 , 2 , 3 , 4
ขั้นที่ 1 เริ่มต้นจากการสร้าง form ให้รับค่าคะแนน เป็น textbox ให้ชื่อว่า final_score แล้วบันทึกไว้ที่ XXX:\AppServ\www\lesson3\test2.php ดังรูปภาพที่ 4
<input name=”final_score” type=”text” id=”final_score” value=”<?=$_POST[‘final_score’]?>” />
<input type=”submit” name=”submit” id=”submit” value=”คำนวณเกรด” />
</form>
ขั้นที่ 2 เขียนโปรแกรมคำนวณเกรดโดยใ้ช้ if ดัง รูปตัวอย่าง ที่ 5
if($_POST[‘submit’])
{
$final_score = $_POST[‘final_score’];
if($final_score < 0)
{
echo”กรุณากรอกตัวเลขตั้งแต่ 0 ขึ้นไป”;
}
else if($final_score < 50)
{
echo “คะแนน $final_score ได้เกรด 0”;
}
else if($final_score < 60)
{
echo “คะแนน $final_score ได้เกรด 1”;
}
else if($final_score < 70)
{
echo “คะแนน $final_score ได้เกรด 2”;
}
else if($final_score < 80)
{
echo “คะแนน $final_score ได้เกรด 3”;
}
else if($final_score <= 100)
{
echo “คะแนน $final_score ได้เกรด 4”;
}
else
{
echo “ผิดพลาด กรุณากรอกตัวเลขไม่เกิน 100”;
}
}
?>
ผมขอไม่อธิบายบางบรรทัดที่คล้ายกับตัวอย่างที่แล้วนะครับ ขออธิบายในส่วนที่สำคัญๆเลยดังต่อไปนี้
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 12 – 15 คือการสร้างเงื่อนไข โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 0 หรือไม่ (กรณีที่กรอกค่าติดลบมา) ถ้าหากเป็นค่าที่น้อยกว่า 0 ก็จะแสดง “กรุณากรอกตัวเลขตั้งแต่ 0 ขึ้นไป”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 16 – 19 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 50 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 50 ก็จะแสดง “คะแนน $final_score ได้เกรด 0”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 20 – 23 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 16 และ 12 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 60 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 60 ก็จะแสดง “คะแนน $final_score ได้เกรด 1”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 24 – 27 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16 และ 20 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 70 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 70 ก็จะแสดง “คะแนน $final_score ได้เกรด 2”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 28 – 31 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16, 20 และ 24 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่า 80 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่า 80 ก็จะแสดง “คะแนน $final_score ได้เกรด 3”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 32 – 35 คือการสร้างเงื่อนไขที่นอกเหนือจากเงื่อนไข บรรทัด ที่ 12,16,20,24 และ 28 โดยตรวจสอบ ค่าจากตัวแปร $final_score ว่าน้อยกว่าหรือเท่ากับ 100 หรือไม่ ถ้าหากเป็นค่าที่น้อยกว่าหรือเท่ากับ 100 ก็จะแสดง “คะแนน $final_score ได้เกรด 4”
จากรูปภาพที่ 5 โปรแกรมคำนวณเกรด บรรทัดที่ 36 – 39 หากนอกเหนือจากเงือนไข บรรทัดที่ 12,16,20,24,28 และ 32 ก็จะแสดง “ผิดพลาด กรุณากรอกตัวเลขไม่เกิน 100”