Câu lệnh switch đượ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 khác nhau. Nó cũng tương tự như câu lệnh if…else nhưng chỉ khác nhau về cú pháp thôi.
Câu lệnh Switch
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
switch (n) { case label1: //Code ở đây sẽ được thực thi nếu n= label1; break; case label2: //Code ở đây sẽ được thực thi nếu n= label2; break; case label3: //Code ở đây sẽ được thực thi nếu n= label3; break; ... default: //Code ở đây sẽ được thực thi nếu n không phải là 1 trong các label trên; } |
Ở đoạn code trên chúng ta có một biểu thức n. Chúng lần lượt chạy từ trên xuống dưới và so sánh xem n có bằng label1, label2…hay không. Nếu nó thấy giá trị khớp với nhau thì sẽ chạy vào trường hợp đó. Sử dụng break để ngăn không cho thực hiện tiếp các câu lệnh bên dưới. Thực thi code ở khối default khi không tìm thấy trường hợp nào đúng.
Ví dụ:
Cho biến $color = “yellow”; Kiểm tra:
- Nếu $color = red thì in ra dòng chữ màu đỏ
- Nếu $color = yellow thì in ra dòng chữ màu vàng
- Nếu $color = green thì in ra dòng chữ màu xanh
- Nếu $color = black thì in ra dòng chữ màu đen
- Nếu không nằm trong các trường hợp trên thì in ra dòng chữ Không hợp lệ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $color = "yellow"; switch ($color) { case 'red': echo "màu đỏ."; break; case 'yellow': echo "màu vàng."; break; case 'green': echo "màu xanh."; break; case 'black': echo "màu đen."; break; default: echo "không hợp lệ."; } ?> |
Câu lệnh Switch lồng nhau
Tương tự như câu lệnh if…else câu lệnh switch case cũng có lồng nhau
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php $a = 5; $check = is_int($a); // 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"; } ?> |