Hướng dẫn php switch case with condition - trường hợp chuyển đổi php với điều kiện

(Php 4, Php 5, Php 7, Php 8)

Câu lệnh switch tương tự như một loạt các câu lệnh IF trên cùng một biểu thức. Trong nhiều trường hợp, bạn có thể muốn so sánh cùng một biến (hoặc biểu thức) với nhiều giá trị khác nhau và thực hiện một đoạn mã khác nhau tùy thuộc vào giá trị nào của nó. Đây chính xác là những gì câu lệnh switch dành cho.

Lưu ý: Lưu ý rằng không giống như một số ngôn ngữ khác, câu lệnh tiếp tục áp dụng cho switch và hoạt động tương tự như break. Nếu bạn có switch bên trong một vòng lặp và muốn tiếp tục lặp lại tiếp theo của vòng lặp bên ngoài, hãy sử dụng continue 2.: Note that unlike some other languages, the continue statement applies to switch and acts similar to break. If you have a switch inside a loop and wish to continue to the next iteration of the outer loop, use continue 2.

Ghi chú::

Lưu ý rằng Switch/Case không so sánh lỏng lẻo.

Trong ví dụ sau, mỗi khối mã là tương đương. Một người sử dụng một loạt các câu lệnh ifelseif và câu lệnh khác. Trong mỗi trường hợp, đầu ra là như nhau.

Ví dụ #1 switch Cấu trúc

switch0

Điều quan trọng là phải hiểu làm thế nào câu lệnh switch được thực thi để tránh sai lầm. Câu lệnh switch thực thi từng dòng (thực tế, câu lệnh theo câu lệnh). Ban đầu, không có mã được thực thi. Chỉ khi một câu lệnh switch3 được tìm thấy có biểu thức đánh giá thành một giá trị phù hợp với giá trị của biểu thức switch, PHP mới bắt đầu thực thi các câu lệnh. PHP tiếp tục thực hiện các câu lệnh cho đến khi kết thúc khối switch hoặc lần đầu tiên nó nhìn thấy một câu lệnh break. Nếu bạn không viết câu lệnh break ở cuối danh sách tuyên bố của trường hợp, PHP sẽ tiếp tục thực hiện các câu lệnh của trường hợp sau. Ví dụ:

switch8

Ở đây, nếu $ I bằng 0, PHP sẽ thực hiện tất cả các câu lệnh ECHO! Nếu $ I bằng 1, PHP sẽ thực hiện hai câu lệnh Echo cuối cùng. Bạn sẽ nhận được hành vi mong đợi ('Tôi bằng 2' sẽ được hiển thị) chỉ khi $ i bằng 2. Do đó, điều quan trọng là không quên các câu break (mặc dù bạn có thể muốn tránh cung cấp chúng trên mục đích trong một số trường hợp nhất định ).

Trong một tuyên bố switch, điều kiện chỉ được đánh giá một lần và kết quả được so sánh với mỗi câu lệnh switch3. Trong một tuyên bố elseif, điều kiện được đánh giá lại. Nếu tình trạng của bạn phức tạp hơn so với so sánh đơn giản và/hoặc nằm trong một vòng lặp chặt chẽ, switch có thể nhanh hơn.

Danh sách câu lệnh cho một trường hợp cũng có thể trống, chỉ cần chuyển kiểm soát vào danh sách câu lệnh cho trường hợp tiếp theo.

switch4

Một trường hợp đặc biệt là trường hợp switch5. Trường hợp này phù hợp với bất cứ điều gì không phù hợp với các trường hợp khác. Ví dụ:

switch6

Lưu ý: Nhiều trường hợp mặc định sẽ gây ra lỗi switch7.: Multiple default cases will raise a switch7 error.

Lưu ý: Về mặt kỹ thuật, trường hợp switch5 có thể được liệt kê theo bất kỳ thứ tự nào. Nó sẽ chỉ được sử dụng nếu không có trường hợp nào khác phù hợp. Tuy nhiên, theo quy ước, tốt nhất là đặt nó vào cuối như là nhánh cuối cùng.: Technically the switch5 case may be listed in any order. It will only be used if no other case matches. However, by convention it is best to place it at the end as the last branch.

Nếu không có nhánh switch3 khớp và không có nhánh switch5, thì không có mã nào sẽ được thực thi, giống như không có câu lệnh if là đúng.

Một giá trị trường hợp có thể được đưa ra như một biểu thức. Tuy nhiên, biểu thức đó sẽ được tự đánh giá và sau đó được so sánh một cách lỏng lẻo với giá trị chuyển đổi. Điều đó có nghĩa là nó không thể được sử dụng cho các đánh giá phức tạp của giá trị chuyển đổi. Ví dụ:

break2

break3

break4

Để so sánh phức tạp hơn, giá trị break5 có thể được sử dụng làm giá trị chuyển đổi. Hoặc, thay vào đó, ________ 6 -____ 37 khối thay vì switch.

break9

break3

switch1

Cú pháp thay thế cho các cấu trúc điều khiển được hỗ trợ với các công tắc. Để biết thêm thông tin, hãy xem Cú pháp thay thế cho các cấu trúc điều khiển.

switch2

Có thể sử dụng dấu chấm phẩy thay vì đại tràng sau một trường hợp như:

switch3

Chúng ta có thể viết điều kiện trong trường hợp chuyển đổi trong PHP không?

PHP không hỗ trợ cú pháp này.Chỉ các giá trị vô hướng cho phép cho các trường hợp.. Only scalar values allowed for cases.

PHP có chuyển đổi không?

Php Basics Câu lệnh switch được sử dụng để chọn một trong nhiều khối mã sẽ được thực thi.Đây là một giải pháp thay thế cho câu lệnh if ... otherif ... khác.The switch statement is used to select one of many blocks of code to be executed. This is an alternative to the if ... elseif ... else statement.

Cái nào tốt hơn nếu khác hoặc chuyển PHP?

IF-ALSE tốt hơn cho các giá trị boolean: Các nhánh có điều kiện nếu thay đổi là tuyệt vời cho các điều kiện thay đổi dẫn đến Boolean, trong khi các câu lệnh chuyển đổi rất phù hợp cho các giá trị dữ liệu cố định.Tốc độ: Một câu lệnh chuyển đổi có thể chứng minh là nhanh hơn so với số lượng trường hợp được cung cấp là tốt.: If-else conditional branches are great for variable conditions that result into a boolean, whereas switch statements are great for fixed data values. Speed: A switch statement might prove to be faster than ifs provided number of cases are good.

Những từ khóa nào sau đây được sử dụng để bắt đầu một điều kiện trong câu lệnh chuyển đổi PHP?

Để viết câu lệnh chuyển đổi PHP, bạn bắt đầu với từ khóa chuyển đổi theo sau là biểu thức để đánh giá (ví dụ: một tên biến).Sau đó, bạn làm theo điều đó với một trường hợp cho từng điều kiện (dựa trên biểu thức).switch keyword followed by the expression to evaluate (for example, a variable name). You then follow that with a case for each condition (based on the expression).