2012-05-19 20 views
5

Tôi có cấu trúc điều khiển như:Có cách nào trong php để làm cho SWITCH opreator so sánh các trường hợp nghiêm ngặt không?

switch ($var) { 
    case TRUE: 
    break; 

    case FALSE: 
    break; 

    case NULL: 
    break; 
} 

Và trường hợp NULL của tôi là không bao giờ gọi bởi vì như tôi tìm thấy trong php dẫn sử dụng:

Lưu ý rằng chuyển/trường hợp không so sánh lỏng.

Tôi biết tôi có thể sử dụng IF thay vì SWITCH nhưng tôi không muốn, tôi có một số đã IF's trong mỗi CASE của SWITCH tôi.

Có cách nào để viết lại bằng cách nào đó SWITCH hoặc sử dụng một số thủ thuật để làm cho nó so sánh giá trị nghiêm ngặt không?

Trả lời

7

Vâng, bạn có thể làm

switch (true) { 
    case $var === TRUE: 
    break; 

    case $var === FALSE: 
    break; 

    case $var === NULL: 
    break; 
} 
+0

vĩ đại giải pháp, cảm ơn bạn . Nhưng liệu nó có làm cho php đánh giá mọi CASE mỗi lần? – Green

+2

@Green Chính xác giống như với mỗi câu lệnh switch - trường hợp đầu tiên đánh giá đúng là được nhập và thực thi dừng trên lệnh break đầu tiên –

0

Đó là cách công tắc xây dựng công việc - không có nhiều việc bạn có thể làm.

Cách duy nhất tôi thấy sẽ là thực hiện một số sửa đổi đối với mã nguồn PHP và biên dịch lại nó; nhưng, sau đó, bạn sẽ không thể chạy "PHP" nữa (và mã của bạn sẽ dựa vào cái gì khác hơn là "PHP")

Các vấn đề liên quan