ค่าของตัวแปร อาจจะถูกกำหนดเป็นค่าใดค่าหนึ่งจากตัวเลือกที่กำหนด (เช่น ตัวแปรที่ใช้เก็บค่า username เมื่อเราต้องการให้ username แต่ละคนนั้นทำบางสิ่งบางอย่างที่แตกต่างกันไป) คำสั่ง switch ได้ถูกออกแบบมาในสถานการณ์เช่นนี้นั่นเอง
คำสั่ง switch เป็น expression ในการเปรียบเทียบค่าของตัวแปรในกรณีต่าง ๆ ภายใน switch ถ้าตัวแปรนั้น ๆ ตรงกับ case ไหนก็จะทำงานภายในบล็อกคำสั่งนั้น ๆ และจะหยุดการทำงานคำสั่งในบล็อกนั้น ๆ ด้วยคำสั่ง break แต่ถ้าค่าตัวแปรไม่ตรงกับ case ไหนเลย มันก็จะมาทำงานในส่วนของ case "default" เราไปดูตัวอย่างกันเลยครับ (ในตัวอย่างนี้ผมจะแสดงการตรวจสอบเงื่อนไขโดยใช้คำสั่ง if และการใช้คำสั่ง switch ให้ผู้อ่านได้พิจารณาเลือกใช้นะครับ)
<?php
if ($user == 'genetic') {
// do something
} else if ($user == 'john') {
// do something
} else if ($user == 'smith') {
// do something
} else if ($user == 'tony' || $user == 'admin') {
// do something
} else {
// do something for not match
}
// การใช้คำสั่ง switch
switch ($user) {
case 'genetic':
// do something
break;
case 'john':
// do something
break;
case 'smith':
// do something
break;
case 'tony':
case 'admn':
// do something
break;
default:
// do something for not match
break;
}
?>
จากตัวอย่างจะเห็นว่าผมได้ทำการกำหนดว่าถ้า user ที่ชื่อว่า 'tony' และ 'admin' ให้ทำคำสั่งเดียวกันดังนั้นในคำสั่ง if ผมก็ใช้ในการตรวจสอบว่า ถ้า user มีชื่อว่า 'tony' หรือ 'admin' ให้ทำคำสั่งในบล็อกนี้ ส่วนในคำสั่ง switch นั้นผมได้กำหนดว่าถ้า case 'tony' ก็ไม่ต้องทำการ break แต่ให้ทำในบล็อกคำสั่งเดียวกับ case 'admin' เลย เมื่อจบคำสั่งให้ทำการ break เพื่อสิ้นสุดการทำงาน
ผู้สนับสนุน