Bài trước chúng ta đã tìm hiểu về câu lệnh rẽ nhánh If...else...elseif trong PHP rồi. Thì ngoài câu lệnh rẽ nhánh If...else...elseif  ra thì chúng ta còn có thêm câu lệnh rẽ nhánh nữa đó là switch - case. Hãy cùng mình bắt đầu tìm hiểu nó thôi nào! 

1. Khái niệm cấu trúc switch - case trong PHP

Câu lệnh switch- case được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện thoả mãn.Cú pháp câu lệnh switch - case: 
switch(<điều_kiện>){

           case <trường_hợp_1>:

           <Các lệnh thực thi>

           break;

           case <trường_hợp_2>:

           <Các lệnh thực thi>

           break;
......
default:
           <Các lệnh thực thi>
}

Chú ý: 
  1. Sau mỗi case bạn phải dùng lệnh break; để kết thúc case đó
  2. Default là trường hợp không có trong các case.
Các bạn sang tiếp phần 2 để xem cách sử dụng nó và xem ví dụ chi tiết nhé!

2. Cách khai báo và sử dung câu lệnh switch - case trong PHP

Các bạn xem một vài ví dụ dưới đây:
Ví dụ 1: Dùng switch - case để kiểm tra năm nhuận. Và công thức tính năm nhuận bằng: Năm cần tính chia cho 400, nếu chia hết thì là năm nhuận, ngược lại thì không phải năm nhuận. VD: 2018 : 400 nếu chia hết thì là năm nhuận, ngược lại không phải. Chúng ta xem ví dụ với switch - case dưới nhé:


<?php 
// Công thức tính năm nhuận
$nam_nhuan = 2018 % 400;
// Kiểm tra các trường hợp có thể sảy ra với biến $nam_nhuan bằng câu lệnh switch - case
switch ($nam_nhuan) {
// Trường hợp $nam_nhuan % 400 bằng 0
case 0:
 echo 'Là năm nhuận'; // Hiển thị "Là năm nhuận"
 break;// kết thúc case 0
// Trường hợp không có trong case 
default:
 echo 'Không là năm nhuận'; // Hiển thị "Không là năm nhuận"
 break;// Kết thúc default
?> 
Kết quả hiển thị
Không là năm nhuận
Ta có thể thấy rằng biến $nam_nhuan khi tính 2018 % 400 thì không chia hết nên giá trị của biến $nam_nhuan sẽ khác với 0 vì thế không nằm trong case 0 mà năm trong default là trường không có ở các case nên nó sẽ echo "Không là năm nhuận";

Ví dụ 2: Dùng switch-case để biểu diễn các ngày phải đi học trong tuần.Và các ngày phải đi học trong tuần là 2,3,4,5,6,7. 
Chúng ta xem ví dụ với switch - case dưới nhé:
<?php 
// Thứ cần kiểm tra
$thu_can_kiem_tra = "Hai";
// Dùng swicth - case để kiểm tra
switch ($thu_can_kiem_tra) {
// Trường hợp case "Hai" thì phải đi học
case "Hai":
echo 'Phải đi học'; 
break;// Kết thúc case "Hai"

// Trường hợp case "Ba" thì phải đi học
case "Ba":
echo 'Phải đi học'; 
break;// Kết thúc case "Ba"

// Trường hợp case "Tư" thì phải đi học
case "Tư":
echo 'Phải đi học'; 
break;// Kết thúc case "Tư"

// Trường hợp case "Năm" thì phải đi học
case "Năm":
echo 'Phải đi học'; 
break;// Kết thúc case "Năm"

// Trường hợp case "Sáu" thì phải đi học
case "Sáu":
echo 'Phải đi học'; 
break;// Kết thúc case "Sáu"

// Trường hợp case "Bảy" thì phải đi học
case "Bảy":
echo 'Phải đi học'; 
break;// Kết thúc case "Bảy"

// Trường hợp không có trên case trên thì được nghỉ
default:
echo 'Được nghỉ';
break;// Kết thúc trường hợp không có trên case 
}
?> 
Kết quả hiển thị
Phải đi học
Mình sẽ giải thích như sau:
Vì biến $thu_can_kiem_tra có giá trị là "Hai" nên rơi vào trường hợp case "Hai" vì thế nó echo "Phải đi học";

Nếu như viết trên kiểu trên thì rất là dài dòng, nên mình sẽ còn một cách viết rút gọn nữa như sau:

<?php 
// Thứ cần kiểm tra
$thu_can_kiem_tra = "Hai";
// Dùng swicth - case để kiểm tra
switch ($thu_can_kiem_tra) {
// Các trường hợp case bằng "Hai" hoặc "Ba" hoặc "Tư" hoặc "Năm" hoặc "Sáu" hoặc 
//"Bảy" chúng ta phải đi học, vì thế ta viết như dưới:
case "Hai":
case "Ba":
case "Tư":
case "Năm":
case "Sáu":
case "Bảy":
echo 'Phải đi học'; // Hiển thị "Phải đi học"
break;// Kết thúc case "Hai", case "Ba", case "Tư", case "Năm", case "Sáu", case "Bảy"
// Trường hợp không có trên case trên thì được nghỉ
default: // Trường hợp không có ở trên các case 
echo 'Được nghỉ';// Hiển thị "Được nghỉ" 
break;// Kết thúc trường hợp default
}
?> 
Kết quả hiển thị
Phải đi học
Mình sẽ giải thích như sau:
Các case bằng "Hai" hoặc "Ba" hoặc "Tư" hoặc "Năm" hoặc "Sáu" hoặc "Bảy" chúng ta phải đi học, vì thế ta viết gắn gọn bằng cách viết câu lệnh echo 'Phải đi học'; nằm ở cuối case "Bảy" và kết thúc bằng break; để khi rơi vào một trong các trường hợp này thì nó sẽ đều echo "Phải đi học";
Qua ví dụ trên ta có thể thấy rằng khi các trường hợp case nó đều thực hiện một lệnh giống nhau thì ta có thể rút gọn chúng bằng cách khai báo lệnh suống dưới case cuối cùng và break; để thực hiện chung các câu lệnh đó!

3. Tổng kết kiến thức

Như vậy trong bài này bạn và mình đã cùng nhau tìm hiểu về Switch - case trong PHP rồi, bạn chỉ cần hiểu nôm na Switch - case là nhập các điều kiện vào và kiểm tra với từng trường hợp case rồi thực hiện các lệnh.