Sử dụng câu lệnh chuyển đổi là một giải pháp thay thế tuyệt vời cho việc sử dụng một loạt câu lệnh if và otherif. Chúng tôi giải thích trong hướng dẫn này tại sao bạn có thể muốn chọn cái này hơn cái kia
Có khá nhiều tính năng độc đáo của câu lệnh chuyển đổi mà bạn sẽ cần biết nếu định sử dụng chúng. Ví dụ: các câu lệnh switch thực hiện từng dòng một. Nếu bạn không sử dụng câu lệnh ngắt, một công tắc sẽ thực thi tất cả mã sau khi khớp cho đến khi đến cuối công tắc. Chúng tôi sẽ giải thích điều này hơn nữa trên
Bạn có thể bên trong nhau, nhưng điều đó không được khuyến khích vì nó có thể khiến mã rất khó đọc và khó hiểu
Hướng dẫn này sẽ đề cập đến cách viết câu lệnh chuyển đổi trong PHP và bao gồm một số điều cơ bản mà bạn cần biết. Chúng tôi cũng đề cập đến việc so sánh các câu lệnh switch với câu lệnh if-else
Mục lục
switch Câu lệnh Cú pháp
Cú pháp của câu lệnh switch khá đơn giản, nhưng bạn sẽ cần biết một vài điều về cách thức hoạt động của chúng
Một công tắc chấp nhận một biểu thức sẽ chỉ được đánh giá một lần. Trong hầu hết các trường hợp, biểu thức là một biến mà PHP sẽ so sánh với các câu lệnh tình huống trong cấu trúc chuyển đổi. Khi tìm thấy kết quả phù hợp, khối mã được liên kết với câu lệnh tình huống sẽ được thực thi
Một công tắc có thể có nhiều câu lệnh tình huống trong PHP, nhưng nên giữ chúng ở mức tối thiểu vì nhiều câu lệnh tình huống có thể khiến mã khó đọc
Các câu lệnh ngắt là tùy chọn, nhưng nếu không có chúng, PHP sẽ thực thi tất cả mã sau khi khớp cho đến khi nó gặp câu lệnh ngắt hoặc kết thúc khối chuyển đổi
Bạn có thể chỉ định một câu lệnh mặc định ở cuối một công tắc sẽ chỉ thực thi khi biểu thức không khớp với bất kỳ câu lệnh tình huống nào. Câu lệnh mặc định là tùy chọn và có thể bỏ qua công tắc nếu bạn không yêu cầu
Sau mỗi câu lệnh tình huống, bạn có thể sử dụng dấu chấm phẩy thay vì dấu hai chấm thông thường. Tuy nhiên, chúng tôi khuyên bạn nên sử dụng dấu hai chấm vì nó giúp mã dễ đọc hơn
switch [i] {
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
}
Ngoài ra, bạn có thể viết một câu lệnh chuyển đổi bằng cách sử dụng
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
3 và kết thúc nó bằng switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
4. Ví dụ dưới đây minh họa cú pháp thay thế cho một công tắc trong PHPswitch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
chuyển đổi so với. nếu khác
Phần này sẽ so sánh sự khác biệt giữa một switch và một loạt các câu lệnh if và elseif
Một câu lệnh chuyển đổi PHP chỉ được đánh giá một lần, trong khi một loạt các câu lệnh if và otherif được đánh giá mỗi khi chúng được chỉ định. Sự khác biệt nhỏ này có thể ảnh hưởng đến hành vi dự kiến của mã của bạn, vì vậy hãy ghi nhớ điều này. Về hiệu suất, có rất ít sự khác biệt về hiệu suất giữa việc sử dụng công tắc và một loạt câu lệnh if
Lợi ích quan trọng nhất của việc sử dụng switch là khả năng đọc. Một công tắc có thể dễ đọc và dễ hiểu hơn nhiều so với một loạt câu lệnh if-else và elseif. Tuy nhiên, khả năng đọc vẫn có thể tùy thuộc vào sở thích cá nhân
Biết khi nào nên sử dụng câu lệnh chuyển đổi qua một loạt câu lệnh if-else và otherif chủ yếu tùy thuộc vào sở thích. Theo thời gian, bạn sẽ học được khi nào nên sử dụng cái này hơn cái kia. Thông thường đối với các điều kiện phức tạp, tôi sử dụng chuỗi if-else. Để so sánh đơn giản, tôi sử dụng một công tắc
Dưới đây là một công tắc và một loạt câu lệnh if-else và elseif. Cả hai sẽ dẫn đến cùng một đầu ra
Cách sử dụng câu lệnh switch trong PHP
Tùy thuộc vào nhà phát triển khi sử dụng câu lệnh chuyển đổi trong mã hóa PHP của họ. Thông thường, bạn nên sử dụng một công tắc khi bạn có nhiều phép so sánh cùng một biểu thức với các giá trị khác nhau. Một công tắc được bố trí hợp lý sẽ dễ hiểu hơn nhiều so với cấu trúc if-else và elseif phức tạp
Dưới đây chúng ta sẽ đi qua một số cách khác nhau để viết một câu lệnh chuyển đổi
Viết một tuyên bố chuyển đổi cơ bản
Trong ví dụ này, chúng ta tạo một câu lệnh switch cơ bản để so sánh một chuỗi với một số câu lệnh case khác nhau trong switch. Tôi sẽ giải thích quy trình của mã bên dưới
Đầu tiên chúng ta tạo một biến tên là
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
5 để lưu trữ chuỗi “Apple“. Tiếp theo là công tắc của chúng tôi, nơi chúng tôi chỉ định biến của mình làm biểu thức. Biểu thức sẽ được đánh giá một lầnBây giờ PHP sẽ so sánh giá trị của biểu thức với từng giá trị trong các câu lệnh tình huống của chúng ta. Chuỗi của chúng tôi khớp với câu lệnh trường hợp thứ ba có chứa chuỗi “Apple”
PHP sẽ thực thi khối mã dưới câu lệnh trường hợp phù hợp của chúng tôi. Khối mã chứa câu lệnh echo và câu lệnh break. Câu lệnh echo sẽ xuất chuỗi và câu lệnh break sẽ buộc thoát khỏi công tắc
Kết quả bên dưới cho thấy biến
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
5 của chúng ta khớp với câu lệnh tình huống “Apple”________số 8_______Tuyên bố mặc định
Trong ví dụ dưới đây, chúng tôi có một công tắc sử dụng số nguyên thay vì chuỗi. Biến [_______1_______7] mà chúng ta sẽ sử dụng trong biểu thức có giá trị là
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
8 và sẽ không khớp với bất kỳ câu lệnh tình huống nào của chúng ta trong công tắc. Kết quả là, khối mã mặc định sẽ chạy
Vì biến
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
7 của chúng ta không khớp với bất kỳ câu lệnh tình huống nào nên khối mã mặc định sẽ chạy và bạn sẽ nhận được kết quả bên dưới. Nếu bạn không có câu lệnh mặc định, sẽ không có gì được xuất raI do not have a matching number.
Kết hợp báo cáo trường hợp
Nếu bạn có cùng một kết quả cho nhiều câu lệnh tình huống, bạn có thể kết hợp chúng lại và giảm việc lặp lại mã. Trong ví dụ dưới đây, chúng tôi có cùng một đầu ra cho ba trường hợp khác nhau, chanh, đường kẻ và cam
Đoạn mã trên của chúng tôi dẫn đến đầu ra sau vì biến của chúng tôi khớp với một trong ba câu lệnh tình huống đầu tiên chia sẻ cùng một khối mã. Chúng tôi có một tiếng vang bên trong khối mã in ra văn bản sau
I like citrus.
Sử dụng câu lệnh break
Bạn có thể sử dụng câu lệnh break để kiểm soát cách câu lệnh switch xử lý các kết quả khớp. Ví dụ: nếu ngắt không tồn tại, công tắc sẽ thực thi mọi khối mã từ khớp đầu tiên đến kết thúc
Trong ví dụ sau, chuỗi của chúng ta sẽ khớp với câu lệnh case đầu tiên. Tuy nhiên, không có câu lệnh ngắt nào cho đến khi câu lệnh trường hợp của chúng tôi kiểm tra “Orange“. Vì không có câu lệnh ngắt, PHP sẽ thực thi ba câu lệnh echo đầu tiên
Đầu ra bên dưới minh họa cách công tắc xử lý các khối mã câu lệnh tình huống không có câu lệnh ngắt. Điều rất quan trọng là phải ghi nhớ điều này khi viết các câu lệnh chuyển đổi của bạn trong PHP
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
0Câu lệnh chuyển đổi lồng nhau
Chủ đề cuối cùng tôi muốn đề cập đến là lồng các câu lệnh chuyển đổi. Bạn có thể lồng các câu lệnh chuyển đổi, nhưng điều này không được khuyến khích vì nó có thể trở nên lộn xộn và khó đọc nhanh
Dưới đây là một ví dụ về hai câu lệnh chuyển đổi lồng nhau trong PHP
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
1Đoạn mã trên có một biến [
switch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
5] khớp với câu lệnh case đầu tiên [“Lemon“] trong switch bên ngoài của chúng ta. Nó cũng có một biến thứ hai [_______4_______1] khớp với câu lệnh case cuối cùng [“Cà rốt“] trong công tắc lồng nhau đầu tiên của chúng ta. Kết quả đầu ra là dưới đâyswitch [i] :
case match1:
//code to be executed if match;
break;
case match2:
//code to be executed if match;
break;
case match3:
//code to be executed if match;
break;
...
default:
code to be executed if i does not match with any case;
endswitch;
2Phần kết luận
Tôi hy vọng hướng dẫn này đã chỉ cho bạn tất cả những điều cơ bản về cách sử dụng câu lệnh chuyển đổi trong PHP. Đó là một cách cực kỳ hữu ích để kiểm soát việc thực thi mã và giúp làm cho mã có thể đọc được đối với các nhà phát triển khác
Nếu bạn muốn tìm hiểu thêm về lập trình bằng PHP, tôi khuyên bạn nên xem loạt hướng dẫn PHP ngày càng phát triển của chúng tôi. Chúng tôi đề cập đến các chủ đề như vòng lặp for, vòng lặp while, if-else, v.v. Các hướng dẫn hoàn hảo cho cả người mới bắt đầu và nhà phát triển nâng cao
Nếu bạn nhận thấy chúng tôi có thể cải thiện hướng dẫn này, vui lòng cho chúng tôi biết bằng cách để lại nhận xét bên dưới