Trong bài học này, bạn sẽ tìm hiểu cách sử dụng câu lệnh Swicth…Case để kiểm tra hoặc đánh giá một biểu thức với các giá trị khác nhau trong PHP.
Sự khác nhau của If…Else và Switch…Case trong PHP
Câu lệnh Switch..Case là một thay thế cho câu lệnh if-elseif-else, nó gần như tương tự nhau.
Câu lệnh Switch…Case kiểm tra một biến đối với một loạt các giá trị cho đến khi tìm thấy khớp, và sau đó thực thi khối mã tương ứng với khớp đó.
switch(n){
case label1:
// Code thực thi nếu n=label1
break;
case label2:
// Code thực thi nếu if n=label2
break;
...
default:
// Code thực thi nếu n không thuộc tình huống nào đưa ra.
}
Hãy thử xem ví dụ bên dưới, hiển thị một thông báo khác nhau cho mỗi ngày:
<?php
$today = date("D");
switch($today){
case "Mon":
echo "Hôm nay là Thứ Hai. Lau dọn Nhà đi.";
break;
case "Tue":
echo "Hôm nay là thứ Ba. Hãy đi siêu thị mua đồ ăn.";
break;
case "Wed":
echo "Hôm nay là thứ Tư. Đi ngủ sớm.";
break;
case "Thu":
echo "Hôm nay là thứ Năm. Rửa xe đi nhé.";
break;
case "Fri":
echo "Hôm nay là thứ Sáu. Nấu một bữa ngon nào!.";
break;
case "Sat":
echo "Hôm nay là thứ Bảy. Hãy xem một bộ phim.";
break;
case "Sun":
echo "Hôm nay là Chủ Nhật. Ra ngoài đi dạo đi.";
break;
default:
echo "Không có thông báo nào cho bạn";
break;
}
?>
Câu lệnh switch…case khác với câu lệnh if…elseif…else như thế này:
Câu lệnh switch thực thi từng dòng (tức là thực thi từng câu lệnh một) và một khi PHP tìm thấy một câu lệnh tình huống đánh giá là đúng, nó không chỉ thực thi code tương ứng với câu lệnh tình huống đó, mà còn thực thi tất cả các câu lệnh tình huống tiếp theo cho đến hết.
Để ngăn chặn điều này, thêm một câu lệnh break vào cuối mỗi khối trường hợp. Câu lệnh break bảo PHP thoát ra khỏi khối câu lệnh switch…case sau khi nó thực thi đoạn mã có điều kiện đúng đầu tiên.