คำสั่ง switch case นั้นจัดอยู่ในกลุ่มของคำสั่งประเภทเงื่อนไขเช่นเดียวกันกับคำสั่ง if เพราะจะตรวจสอบเงื่อนไขก่อนจะทำคำสั่งต่อไปก่อนเสมอ ซึ่งค่าที่จะได้ในการตรวจสอบมีอยู่ 2 ค่าคือ ค่า true และค่า false นั่นเอง โดยคำสั่ง switch case นั้นใช้ในกรณีที่เรานั้นมีเงื่อนไขที่ต้องตรวจสอบอยู่หลายเงื่อนไข ซึ่งหากเราใช้ else if อาจจะไม่สะดวก จึงมีการตรวจสอบเงื่อนไขในอีกลักษณะหนึ่งเพิ่มเข้ามา นั่นคือ switch โดยรูปแบบการเขียนมีดังนี้
โครงสร้างของคำสั่ง switch
switch (สิ่งที่ต้องการตรวจสอบ){
case ค่าที่ 1 :
คำสั่ง
breake;
case ค่าที่ 2 :
คำสั่ง
breake;
case ค่าที่ 3 :
คำสั่ง
breake;
default:
คำสั่ง กรณีไม่ตรงกับค่าใน case ต่างๆ
}
TIP : คำสั่ง break เป็นการสั่งให้โปรแกรมออกจากคำสั่ง switch หากเจอเงื่อนไขที่ต้องการแล้ว มิฉะนั้นโปรแกรมจะยังตรวจสอบเงื่อนไขถัดไปเรื่อยๆ แม้ว่าจะพบกับเงื่อนไขที่ต้องการแล้วก็ตาม ส่วนของ default จะมีหรือไม่มีก็ได้ขึ้นอยู่กับว่าค่าที่กำหนดด่้วย case นั้นจะครอบคลุมทุกค่าที่อาจจะเป็นไปได้หรือไม่ หราก case นั้นครอบคลุมหมดทุกค่าก็ไม่ต้องใส่ default ก็ได้ครับ เช่น
ตัวอย่างการใช้คำสั่ง switch
$grade = "...";
switch($grade){
case "A"
echo "คะแนนตั้งแต่ 80 คะแนนขึ้นไป"; break;
case "B"
echo "คะแนนอยู่ระหว่าง 70 - 79 คะแนน"; break;
case "C"
echo "คะแนนอยู่ระหว่าง 60 - 69 คะแนน"; break;
case "D"
echo "คะแนนอยู่ระหว่าง 50 - 59 คะแนน"; break;
case "F"
echo "คะแนนน้อยกว่า 50 คะแนน"; break;
}
ตัวอย่างการใช้คำสั่ง switch กรณีมีหลาย case ต้องการรูปแบบคำสั่งเดียวกัน
กรณีที่มีหลายๆ case ที่ต้องใช้คำสั่งในรูปแบบเดียวกัน เราไม่จำเป็นต้องเขียนคำสั่งเหล่านั้นซ้ำๆกันหลายๆรอบก็ได้ เราจะใช้การเขียนไว้ที่ case ตัวสุดท้ายของแต่ละกลุ่มของ case ได้ เช่น
switch($a){
case 1:
case 2:
case 3:
echo "ประเภทตัวเลขจำนวนเต็มบวก"; break;
case -1:
case -2:
case -3:
echo "ประเภทตัวเลขจำนวนเต็มลบ"; break;
}
ซึ่ง code ส่วนนี้อธิบายได้ว่า หาก $a ไม่ว่าจะมีค่าเป็น 1 หรือ 2 หรือ 3 อย่างใดอย่างหนึ่งจะแสดงคำว่า "ประเภทตัวเลขจำนวนเต็มบวก" แต่หาก $x มีค่าเป็น -1 หรือ -2 หรือ -3 จะแสดงคำว่า "ประเภทตัวเลขจำนวนเต็มลบ" ออกมาแทนครับ