แนะนำตัว
ถ้าโปรแกรมต้องการชุดคำสั่ง if ที่ทำกระบวนการต่างกันสำหรับค่าที่ต่างกันของนิพจน์ โปรแกรมนั้นอาจดูงุ่มง่ามมากกับแต่ละคำสั่ง if ที่มีชุดวงเล็บปีกกาเป็นของตัวเอง นี่คือที่ที่ใช้ swtich-case construct สามารถทำให้โปรแกรมกะทัดรัดและอ่านง่าย ด้วยโครงสร้างสวิตช์ คุณสามารถเปรียบเทียบตัวแปร (หรือนิพจน์) เดียวกันกับค่าต่างๆ มากมาย และรันโค้ดที่แตกต่างกันขึ้นอยู่กับค่าที่มันมีค่าเท่ากับ
ไวยากรณ์
switch (expr) { case val1: code to be executed if expr=val1; break; case val2: code to be executed if expr=val2; break; ... ... default: code to be executed if expr is not equal to any of above values; }
มันเป็นสิ่งสำคัญที่จะให้หยุดพัก คำสั่งหลังจากการบล็อกแต่ละกรณีเพื่อให้เป็นโมฆะการไหลของโปรแกรมที่ตกผ่านกรณีที่เหลือ
ในตัวอย่างต่อไปนี้ ผู้ใช้จะถูกขอให้ป้อนตัวเลขสองตัวและตัวเลขสำหรับประเภทของการดำเนินการเลขคณิต 1/2/3/4 สำหรับการบวก/ลบ/คูณ/หาร
ตัวอย่าง
<?php $first=(int)readline("enter a number"); $second=(int)readline("enter another number"); $x=readline("enter 1/2/3/4 for add/subtract/multiply/divide"); $result=0; switch($x){ case 1: echo $first+$second; break; case 2: echo $first-$second; break; case 3: echo $first*$second; break; case 4: echo $first/$second; break; default: echo "Incorrect input"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
Incorrect input
ค่าเริ่มต้น คีย์เวิร์ดใช้เพื่อระบุกลุ่มคำสั่งที่จะดำเนินการหากนิพจน์สวิตช์ไม่ตรงกับกรณีเฉพาะ
หากบล็อกกรณีใดว่างเปล่า ก็แค่ส่งผ่านโฟลว์ไปยังกรณีถัดไป
ตัวอย่าง
<?php $x=(int)readline("enter a number"); switch($x){ case 1: case 2: echo "x is less than 3"; break; case 3: echo "x is equal to 3"; break; case 4: echo "x is greater than 3";break; default: echo "x is beyound 1 to 4"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
x is beyound 1 to 4
เป็นไปได้ที่จะใช้ สตริง ค่าที่จะเปรียบเทียบกับนิพจน์สวิตช์
ตัวอย่าง
<?php $x=readline("enter a something.."); switch($x){ case "India": echo "you entered India"; break; case "USA": echo "You typed USA"; break; case "Mumbai": echo "you entered Mumbai";break; default: echo "you entered something else"; } ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -
you entered something else