Chuyển đúng trong PHP

Khi bạn tự tin hơn với mã PHP của mình, mã của bạn sẽ ngày càng phức tạp hơn. Câu lệnh PHP switch đơn giản hóa logic PHP của bạn, thay thế các câu lệnh if lộn xộn khi cố gắng đưa ra các quyết định đơn giản dựa trên giá trị của một biến. Đọc để tìm hiểu làm thế nào để sử dụng nó

Cú pháp chuyển đổi PHP

switch[$v] {
    case $a:
        # Code to be executed if  $v is equal to $a
        break;
    case $b:
        # Code to be executed if  $v is equal to $b
        break;
    case $c:
        # Code to be executed if  $v is equal to $c
        break;
    ...
    default;
        # Default code to be executed if no condition met
}

Lưu ý rằng

  • Câu lệnh switch được theo sau bởi biến hoặc giá trị để so sánh
  • Các câu lệnh trường hợp bên trong khối công tắc được theo sau bởi biến hoặc giá trị thứ hai để so sánh
    • Mã sau dấu hai chấm trong câu lệnh tình huống sẽ chỉ thực thi nếu giá trị switch và case khớp nhau
  • Chỉ cho phép một trường hợp mặc định, trường hợp này sẽ thực thi nếu không tồn tại câu lệnh ngắt trước đó
    • Câu lệnh break ngăn không cho bất kỳ trường hợp nào sau đây được kiểm tra, do đó ngăn không cho mã của chúng chạy
    • Câu lệnh tiếp tục có thể được sử dụng thay cho dấu ngắt
    • continue chấp nhận một đối số số tùy chọn cho biết nó nên bỏ qua bao nhiêu cấp vòng lặp kèm theo – xem ở phần sau của bài viết để biết điều này có nghĩa là gì trong các câu lệnh switch
  • chuyển đổi/trường hợp thực hiện so sánh lỏng lẻo theo mặc định
    • Điều này có nghĩa là 2 và “2” bằng nhau – cũng như 0 và FALSE – vì loại biến bị bỏ qua
    • Xem ở phần sau của bài viết về cách sử dụng phép so sánh nghiêm ngặt trong đó loại biến được xem xét

chuyển đổi Ví dụ

Hãy xem xét chuỗi câu lệnh if/elseif in thông tin về một số sau đây

if [$var == 0] {
    echo "$var equals 0";
} elseif [$var == 1] {
    echo "$var equals 1";
} elseif [$var == 2] {
    echo "$var equals 2";
} else [
    echo "i is not equal to 0, 1, or 2";
]

Đây là chức năng tương tự, nhưng sử dụng câu lệnh switch để thay thế

switch [$var] {
    case 0:
        echo "$var equals 0";
        break;
    case 1:
        echo "$var equals 1";
        break;
    case 2:
        echo "$var equals 2";
        break;
    default:
        echo "i is not equal to 0, 1, or 2";
}

Điều này dễ viết hơn rất nhiều và cũng dễ đọc hơn rất nhiều

Câu lệnh break có thể bỏ qua trường hợp nếu bạn muốn tiếp tục so sánh thêm

switch [$var] {
    case 0:
    case 1:
        echo "$var equals 0 or 1";
        break;
    case 2:
        echo "$var equals 2";
        break;
    default:
        echo "i is not equal to 0, 1, or 2";
}

Ở trên, nếu $var bằng 0 hoặc 1, câu lệnh trường hợp sẽ được thực thi cho tất cả các trường hợp không bị phá vỡ ở trên nó

Các loại biến

Như đã đề cập trước đó, switch/case thực hiện so sánh lỏng lẻo theo mặc định

Có một mẹo để giải quyết vấn đề này – kiểm tra xem tất cả các trường hợp đều đúng hay không và biến tất cả các trường hợp thành biểu thức boolean thực hiện so sánh nghiêm ngặt

$var = 0;

switch [true] {
    case [$var === true]:
        echo '$var is true';
        break;
    case [$var === false]:
        echo '$var is false';
        break;
    case [$var === 0]:
        echo '$var is 0';
        break;
}

Chỉ trường hợp cuối cùng ở trên mới chạy, vì các phép so sánh nghiêm ngặt sẽ không đánh giá 0 là sai. So sánh trường hợp sẽ thành công vì điều kiện trong ngoặc sẽ đánh giá là đúng và khớp với giá trị của câu lệnh chuyển đổi

Điều này cũng có thể được sử dụng để cung cấp các phép so sánh kiểm tra những thứ khác ngoài sự bằng nhau dưới dạng trường hợp, chẳng hạn như lớn hơn hoặc nhỏ hơn

$var = 0;

switch [true] {
    case [$var < 1]:
        echo '$var is less than 1';
        break;
    case [$var > 1]:
        echo '$var is greater than 1';
        break;
}

Sử dụng tiếp tục thay vì ngắt

Nếu đang sử dụng câu lệnh switch trong một vòng lặp, thì bạn có thể sử dụng câu lệnh tiếp tục thay vì ngắt để kết thúc các hành động trong câu lệnh switch, cũng như để chuyển sang bước lặp tiếp theo trong vòng lặp có trong vòng lặp đó

Điều này được thực hiện bằng cách cung cấp một đối số số để tiếp tục cho nó biết số lượng vòng lặp bao quanh nên được bỏ qua – và nó tính câu lệnh switch là một vòng lặp cho mục đích này. Ví dụ

$array = [1, 2, 3];

foreach[$array as $vartem] {

    switch[$vartem] {
        case 1:
            echo 'a'; 
            continue 2;
        case 2:
            echo 'b'; 
            continue 2;
        default:
            echo 'c'; 
            continue 2;
    }

    echo 'x';
}

… sẽ xuất ra

abcx

Vì câu lệnh tiếp tục 2 đang bỏ qua các trường hợp còn lại trong câu lệnh switch cũng như vòng lặp foreach mà chúng được chứa trong

Nhấp vào đây để xem tài liệu PHP chính thức cho câu lệnh switch và Xem các bài viết về lập trình PHP khác của chúng tôi

Có câu lệnh switch trong PHP không?

Câu lệnh chuyển đổi PHP .

Câu lệnh switch[] là gì?

Trong các ngôn ngữ lập trình máy tính, câu lệnh chuyển đổi là một loại cơ chế kiểm soát lựa chọn được sử dụng để cho phép giá trị của một biến hoặc biểu thức thay đổi luồng điều khiển thực thi chương trình thông qua tìm kiếm và . .

Chuyển đổi có phải là một câu lệnh có điều kiện trong PHP không?

Câu lệnh switch tương tự như một loạt câu lệnh if-else . Câu lệnh switch thực hiện trong nhiều trường hợp khác nhau. e. nó có nhiều trường hợp khác nhau phù hợp với điều kiện và thực hiện một cách thích hợp một khối trường hợp cụ thể.

Chúng ta có thể sử dụng toán tử trong trường hợp chuyển đổi trong PHP không?

Sử dụng toán tử “hoặc” trong trường hợp chuyển đổi . Họ làm việc theo cách sau. đầu tiên, họ chuyển đổi toán hạng của mình thành boolean, sau đó thực hiện phép so sánh tương ứng. Các toán tử logic là && ,. , xor ,. , VÀ , hoặc. PHP supports standard logical operators. They work in the following way: first, they convert their operands to boolean, then implement a respective comparison. The logical operators are && , || , xor , ! , AND , or .

Chủ Đề