Hướng dẫn switch case php

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • Câu lệnh switch case

Câu lệnh switch case

  • Câu lệnh switch case được sử dụng khi muốn lấy một lựa chọn trong nhiều điều kiện khác nhau.
  • Các điều kiện được sử dụng thường là các toán tử so sánh.
  • Khi muốn kết hợp nhiều điều kiện khác nhau, chúng ta thường dùng kết hợp toán tử so sánh và toán tử logic
  • Các dạng câu lệnh switch case thường gặp:
    • Câu lệnh switch case cơ bản
    • Câu lệnh switch case kết hợp
    • Sử dụng case liên tục trong câu lệnh swich case
    • Đóng và mở phạm vi câu lệnh swich

Câu lệnh switch case cơ bản

Cấu trúc

code được thực thi nếu a = value1;
        break;
    case value2:
        code được thực thi nếu a = value2;
        break;
    case value3:
        code được thực thi nếu a = value3;
        break;
    ...
    default:
        code được thực thi nếu a không có các giá trị value trên;
}
?>

  • a thường mang giá trị nào đó, có thể là số, chuỗi,...
  • break dùng để ngăn không cho tiếp tục thực hiện các dòng code bên dưới.
  • default được dùng khi không có trường hợp nào bên trên phù hợp.

Ví dụ

Trường hợp case 5 đúng nên được thực thi.

Câu lệnh switch case kết hợp

Bên trong swith case có thể sử dụng nhiều biểu thức, các câu lệnh, vòng lặp hoặc function.

Ví dụ câu lệnh if else bên trong câu lệnh switch case

Case 5 đúng nên được thực thi, $a/2 dư 1, nên không phải số nguyên, do đó điều kiện var_dump được thực thi.

Ví dụ câu lệnh switch case lồng nhau

// Kiểm tra $a có phải là số nguyên không
switch ($check) {
    case "true": // Nếu $a là số nguyên thì thực thi dòng lệnh bên dưới
        switch ($a) {
            case 0:
                echo "a bằng 0";
                break;
            case 2:
                echo "a bằng 2";
                break;
            case 3:
                echo "a bằng 3";
                break;
            case 4:
                echo "a bằng 4";
                break;
            case 5:
                echo "a bằng 5";
                break;
            default:
                echo "$a";
        }
        break;
    default: // Nếu $a không là số nguyên thì thực thi dòng lệnh bên dưới
        echo "a không là số nguyên";
}
?>

Sử dụng case liên tục trong swich case

Nếu muốn tạo nhiều trường hợp khác nhau, và giá trị ứng với một trong các điều kiện đó thì ta có thể sử dụng case liên tục.

Ví dụ

a có giá trị trong khoảng từ 3 đến 6

Các dùng tương tự như điều kiện if($a == 3 || $a == 4 || $a == 5 || $a == 6)

Đóng và mở phạm vi câu lệnh swich

Đây là cách viết ký hiệu cho dòng lệnh dễ kiểm soát hơn, dễ phân biệt được đóng và mở của câu lệnh switch khi dòng code dài, tránh nhầm lẫn với đóng của các câu lệnh khác.

Ví dụ

Các dùng tương tự như điều kiện if($a == 3 || $a == 4 || $a == 5 || $a == 6)

1) Khái niệm lệnh "switch case" trong PHP

- Lệnh switch case dùng để xác định một danh sách các trường hợp, trong mỗi trường hợp sẽ có một đoạn mã. Khi giá trị của bạn trùng khớp với trường hợp nào thì đoạn mã của trường hợp đó sẽ được thực thi.

- Để giúp bạn dễ hình dung hơn về khái niệm trên thì tôi có một ví dụ minh họa như sau:

- Giả thuyết: Khi đến một quán nước, ở đó có một cái menu giống bên dưới và trong tay bạn chỉ có đúng mười nghìn.

MENU

Cà phê sữa

12.000đ

............................................

Cà phê đá

10.000đ

............................................

Sting dâu

8.000đ

............................................

Trà đá

2.000đ

............................................

- Câu hỏi: Nếu yêu cầu chọn một món nước uống có giá bằng đúng với số tiền mà bạn đang có, thì món nước uống đó là món gì !?

- Trả lời: Cà phê đá.

- Phía trên là một ví dụ mô tả gần giống với lệnh switch case, trong đó:

  • Số tiền mà bạn đang có chính là giá trị (tạm gọi như vậy)
  • Giá tiền của từng loại nước uống trong menu chính là trường hợp
  • Món nước uống chính là đoạn mã được thực thi.

- Nếu ta chuyển ví dụ trên về dạng mã lệnh trong PHP thì nó sẽ có dạng như sau:

Xem ví dụ

2) Cách sử dụng lệnh "switch case" trong PHP

- Trong PHP, lệnh switch case được sử dụng với cú pháp như sau:

switch (giá trị){
    case trường hợp 1:
        //đoạn mã này sẽ được thực thi khi giá trị trùng khớp với trường hợp 1
        break;
    case trường hợp 2:
        //đoạn mã này sẽ được thực thi khi giá trị trùng khớp với trường hợp 2
        break;
    case trường hợp 3:
        //đoạn mã này sẽ được thực thi khi giá trị trùng khớp với trường hợp 3
        break;
    ...
    ...
    ...
    default:
        //đoạn mã này sẽ được thực thi khi giá trị KHÔNG trùng khớp trường hợp nào cả
        break;
}

Hiển thị tên của loại nước uống có giá trị bằng đúng với số tiền mà bạn đang có.


Xem ví dụ

Hôm nay là thứ mấy !?


Xem ví dụ

3) Tầm quan trọng của lệnh "break"

- Trong danh sách các trường hợp của lệnh switch case, khi giá trị của bạn trùng khớp với trường hợp nào thì đoạn mã của trường hợp đó sẽ được thực, ngoài ra các đoạn mã của những trường hợp nằm bên dưới trường hợp trùng khớp cũng sẽ được thực thi luôn.

- Từ đây, lệnh break giúp ta ngăn chặn việc thực thi các đoạn mã của những trường hợp nằm bên dưới trường hợp trùng khớp.

Ví dụ, lệnh switch case không sử dụng break Ví dụ, lệnh switch case có sử dụng break
Mùa Xuân

"; case "ha": echo "

Mùa Hạ

"; case "thu": echo "

Mùa Thu

"; case "dong": echo "

Mùa Đông

"; } ?>
Mùa Xuân

"; break; case "ha": echo "

Mùa Hạ

"; break; case "thu": echo "

Mùa Thu

"; break; case "dong": echo "

Mùa Đông

"; break; } ?>
Xem ví dụ Xem ví dụ

4) Công dụng của lệnh "default"

- Lệnh default dùng để xác định một đoạn mã mặc định sẽ được thực thi khi giá trị của bạn không trùng khớp với bất kỳ trường hợp nào.


Xem ví dụ

5) Nhóm các trường hợp lại với nhau

- Nếu trong danh sách các trường hợp của lệnh switch case có những trường hợp mà bạn muốn cùng thực thi một đoạn mã thì ta hãy nhóm các trường hợp đó lại với nhau.


Xem ví dụ

6) Lệnh "switch case lồng nhau"

- Thật ra, lệnh switch case lồng nhau chỉ là cách sử dụng nâng cao của lệnh switch case thông thường, nó giúp ta mở rộng phạm vi xét duyệt các trường hợp. Từ đó, chọn được đoạn mã thích hợp nhất để thực thi.


Xem ví dụ