PHP switch – Giới thiệu về câu lệnh switch trong PHP

PHP switch - Giới thiệu về câu lệnh switch trong PHP

Tóm tắt: trong bài hướng dẫn này bạn sẽ tìm hiểu về câu lệnh Switch trong PHP. Thực thi một khối mã bằng cách so sánh biến đầu vào với nhiều giá trị.

Giới thiệu về câu lệnh switch trong PHP

Khi giá trị của một biến duy nhất xác định số lượng lựa chọn khác nhau, bạn có thể sử dụng câu lệnh if...elseif.

Giả sử bạn đang thiết kế trang web mà user có nhiều role như admin, editor, author và member.

Ví dụ sau sử dụng câu lệnh if elseif để hiển thị thông báo khác nhau dựa trên vai trò của người dùng:

<?php

$role = 'subscriber';
$message = '';

if ('admin' === $role) {
	$message = 'Chào mừng, admin!';
} elseif ('editor' === $role) {
	$message = 'Chào mừng! Bạn có một số bài viết chờ biên tập';
} elseif ('author' === $role) {
	$message = 'Chào mừng! Bạn muốn xuất bản bài viết nháp không?';
} elseif ('subscriber' === $role) {
	$message = 'Chào mừng! Hãy kiểm tra những bài viết mới.';
} else {
	$message = 'Xin lỗi! Bạn không được phép truy cập trang này';
}

echo $message;

Kết Quả:

Chào mừng! Hãy kiểm tra những bài viết mới.

Khi giá trị của một biến duy nhất xác định số lượng lựa chọn khác nhau. Việc sử dụng câu lệnh switch như sau sẽ sạch sẽ và dễ đọc hơn:

<?php

$role = 'admin';
$message = '';

switch ($role) {
	case 'admin':
		$message = 'Chào mừng, admin!';
		break;
	case 'editor':
		$message = 'Chào mừng! Bạn có một số bài viết chờ biên tập';
		break;
	case 'author':
		$message = 'Chào mừng! Bạn muốn xuất bản bài viết nháp không?';
		break;
	case 'subscriber':
		$message = 'Chào mừng! Hãy kiểm tra những bài viết mới.';
		break;
	default:
		$message = 'Bạn không được phép truy cập trang này';
}

echo $message;

Dưới đây là cú pháp của câu lệnh switch:

<?php

switch (biểu_thức) {
	case giá_trị1:
		// khối mã 1
		break;
	case giá_trị2:
		// khối mã 2
		break;
	case giá_trị3:
		// khối mã 3
		break;
	default:
		// khối mã mặc định
}

Câu lệnh switch so sánh một biểu_thức với giá trị trong mỗi case.

Nếu biểu_thức bằng giá trị trong một case, ví dụ như giá_trị1. PHP thực thi khối mã trong case tương ứng cho đến khi gặp câu lệnh break đầu tiên.

Nếu không có sự khớp và có default sẵn có. PHP sẽ thực thi tất cả các câu lệnh sau từ khóa default.

Trong trường hợp default không được chỉ định và không có sự khớp, sẽ chuyển quyền kiểm soát cho câu lệnh mà theo sau câu lệnh switch.

Biểu đồ dưới đây minh họa cách hoạt động của câu lệnh switch:

PHP switch

Kết hợp các case

Vì PHP thực thi câu lệnh switch từ nhãn case khớp cho đến khi gặp câu lệnh break, bạn có thể kết hợp nhiều case trong một.

Ví dụ sau sử dụng câu lệnh switch và kết hợp các trường hợp của 'editor''author':

<?php

$message = '';
$role = 'author';

switch ($role) {
	case 'admin':
		$message = 'Chào mừng, admin!';
		break;
	case 'editor':
	case 'author':
		$message = 'Chào mừng! Bạn muốn tạo bài viết mới không?';
		break;
	case 'subscriber':
		$message = 'Chào mừng! Hãy kiểm tra những bài viết mới.';
		break;
	default:
		$message = 'Bạn không được phép truy cập trang này';
}

echo $message;

Kết Quả:

Chào mừng! Bạn muốn tạo bài viết mới không?

Trong ví dụ này, nếu vai_tròeditor hoặc author, nó sẽ hiển thị cùng một thông báo.

Cấu trúc thay thế câu lệnh switch trong PHP

PHP cũng hỗ trợ cú pháp thay thế cho câu lệnh switch như sau:

<?php

switch (biểu_thức):
	case giá_trị1:
		// khối mã 1
		break;
	case giá_trị2:
		// khối mã 2
		break;

	default:
		// khối mã mặc định
		break;
endswitch;

Cú pháp thay thế này phù hợp để kết hợp với mã HTML.

Tóm tắt

  • Sử dụng câu lệnh switch trong PHP thay vì một loạt các câu lệnh if trên cùng một biểu thức.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...