Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

คำสั่ง switch ใน PHP

บทนำ

ถ้าโปรแกรมต้องการชุดคำสั่ง if หลายคำสั่งที่ดำเนินการต่างกันสำหรับค่าที่เปลี่ยนแปลงของนิพจน์ อาจได้โค้ดที่ซับซ้อนมากด้วยคำสั่ง if แต่ละอันที่มีวงเล็บปีกกาของตัวเอง นี่คือที่ที่การใช้คอนสตรัคต์ switch-case ทำให้โปรแกรมกระชับและอ่านง่าย ด้วย switch 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; }

สำคัญที่ต้องให้คำสั่ง break หลังบล็อก case แต่ละอัน เพื่อไม่ให้โฟลว์โปรแกรมหล่นผ่าน case ที่เหลือ

ในตัวอย่างต่อไปนี้ ผู้ใช้ถูกขอให้ป้อนตัวเลขสองตัว และตัวเลขสำหรับประเภทการดำเนินการคณิตศาสตร์ 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

คีย์เวิร์ด default ใช้ระบุบล็อกคำสั่งที่จะดำเนินการถ้านิพจน์ switch ไม่ตรงกับ case เฉพาะเจาะจง

ถ้าบล็อก case ไหนว่างเปล่า จะส่งผ่านโฟลว์ไป case ถัดไป

ตัวอย่าง

<?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

สามารถใช้ค่า string เพื่อเปรียบเทียบกับนิพจน์ switch ได้:

ตัวอย่าง

<?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