LÝ THUYẾT
XỬ LÝ FORM
BÀI TẬP
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 06: Câu lệnh switch case trong php

Như ta đã biết, câu lệnh if else dùng để kiểm tra và rẽ nhánh cách mệnh đề của bài toán. Nhưng không phải nó là duy nhất, trong php có một câu lệnh khác đó là lệnh rẻ nhanh switch case.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài này ta sẽ tìm hiểu ba vấn đề chính:

  • Câu lệnh switch
  • Switch và if
  • Switch lồng nhau

1. Câu lệnh switch trong PHP

Câu lệnh switch trong php cho phép ta đưa ra quyết định có nhiều cách lựa chọn để giá trị của biểu thức truyền vào. Nếu giá trị biểu thức truyền vào trùng với các giá trị biểu thức điều kiện thì các câu lệnh bên trong biểu thức điều kiện sẽ được thực hiện.

Cú pháp:

Bài viết này được đăng tại [free tuts .net]

switch ($variable) {
    case $value_1:
       // chuỗi câu lênh
       break;
    case $value_2:
        // chuỗi câu lệnh
        break;
    default:
        // chuỗi câu lệnh
        break;
}

Trong đó lệnh switch, case default là các từ khóa trong PHP. Các chuỗi câu lệnh có thể là lệnh đơn (1 lệnh) hoặc lệnh ghép (kết hợp nhiều lệnh) và không cần đặt trong cặp dấu ngoặc nhọn {}. Ở mỗi dòng lệnh lựa chọn (case) nó sẽ so sánh xem biến truyền vào $variable có bằng với biến điều kiện $value_1, $value_2 hay không, nếu trùng với case nào thì những câu lệnh bên trong case đó sẽ được thực hiện, đồng thời dòng lệnh break sẽ kết thúc câu lệnh switch. Nếu không có lựa chọn (case) nào đúng thì mặc định nó sẽ chạy vào chuỗi dòng lệnh trong default, lệnh default trong mệnh đề rẻ nhánh switch có thể có hoặc không.

Giá trị ở case chỉ chấp nhận các kiễu dữ liệu string, INT, boolean, null, foat hoặc là một biểu thức có kết quả trả về một trong năm loại dữ liệu đó và toán tử quan hệ so sánh trong switch luôn luôn là ==.

Ví dụ: Viết chương nhập vào một số, dùng lệnh rẻ nhánh switch kiểm tra số đó nếu:

  • Bằng 0 thì xuất dòng lênh “Số không”
  • Bằng 1 thì xuất dòng lệnh “Số một”
  • Bằng 2 thì xuất dòng lệnh “Số hai”
  • Bằng 3 thì xuất dòng lệnh “Số ba”
  • Bằng 4 thì xuất dòng lệnh “Số bốn”
  • Các số còn lại xuất hiện dòng lệnh “Không tìm thấy”

Bài giải:

$number = 1;
switch ($number)
{
    case 0 :
        echo 'Số không';
        break;
    case 1:
        echo 'Số một';
        break;
    case 2:
        echo 'Số hai';
        break;
    case 3:
        echo 'Số ba';
        break;
    case 4 :
        echo 'Số bốn';
        break;
    default:
        echo 'Không tìm thấy';
        break;
}

Giải thích:

  • Bước 1: Biểu thức truyền vào là biến $number có giá trị = 10
  • Bước 2: Ở case thứ nhất điều kiện là $number = 0 thì mới thực hiện, mà $number = 10 nên không thỏa điều kiện
  • Bước 3: Tương tự cho các lệnh case còn lại đều không thỏa điều kiện.
  • Bước 4: Đến lệnh default, đây là lệnh được thực hiện khi các lênh case trên không có cái nào thỏa điều kiện nên trên màn hình sẽ xuất hiện chữ “Không tìm thấy”.

Giả sử ta nhập biên $number = 2, bài toán trên sẽ được giải thích như sau:

  • Bước 1: Nhập $number = 2
  • Bước 2: Ở case thứ nhất không thỏa điều kiện vì 2 khác 0 nên chương trình sẽ qua Case tiếp theo.
  • Bước 3: Ở case thứ 2 vẫn không thỏa điều kiện vì 2 khác 1 nên chương trình sẽ qua Case tiếp theo
  • Bước 4: Ở case thứ 3 này thỏa điều kiện vì 2 bằng 2, lúc này chương trình sẽ chạy vào các câu lệnh bên trong nên xuất ra màn hình chữ ‘Số hai’, đồng thời dòng Break dừng luôn cả chương trình rẻ nhánh này vì đã thỏa mãn. Kết thúc chương trình

2. Switch và if

Lệnh If và lệnh Switch là 2 dạng lệnh rẻ nhánh trong PHP, tuy nhiên lệnh if vẫn linh hoạt hơn switch và tốc độ cũng nhanh hơn. Với những bài toán ta thể hiện bằng switch thì hoàn toàn có thể chuyển thành if, ngược lại những bài toán ta dùng lệnh if để thể hiện thì chưa chắc đã chuyển qua lệnh switch đươc.

Với bài toán trên ta thể hiện bằng câu lệnh if như sau:

$number = 10;
if ($number == 0){
    echo 'Số không';
}
else if ($number == 1){
    echo 'Số một';
}
else if ($number == 2){
    echo 'Số hai';
}
else if ($number == 3){
    echo 'Số ba';
}
else if ($number == 4){
    echo 'Số bốn';
}
else {
    echo 'Không tìm thấy';   
}

3. Switch lồng nhau

Cũng như lệnh if, lệnh switch cũng có thể lồng nhau.

Ví dụ:

$number = 12;
$midle = null;
switch ($number)
{
    case 12 : // nếu $number = 12
        $midle = $number % 2; // lấy số dư
        switch ($midle)
        {
            case 0 : // nếu số dư = 0
                echo 'Số chẵn';
                break;
            default :
                echo 'Số lẽ';
                break;
        }
        break;
    default: // nếu không phải 12 thì không làm gì
        break;
}

3. Lời kết

Trong bài học này hy vọng các bạn hiểu được cách sử dụng lệnh switch case trong php và có những quyết định sáng suốt trong việc lựa chọn giữa lệnh switch và lệnh if. Trong bài học tới chúng ta sẽ nghiên cứu về vòng lặp, có 4 loại vòng lặp trong php nhưng chúng ta nghiên cứu vòng lặp for trước.

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top