Để tránh các câu lệnh if lồng nhau và để cải thiện khả năng đọc, tôi muốn tạo một tuyên bố switch(true){ ... }
trong Coldfusion. Tôi sử dụng này thường trong php, nhưng khi tôi cố gắng này trong Coldfusion, tôi nhận được lỗi sau lúc khởi tạo:chuyển đổi (true) với các trường hợp động trong coldfusion?
Template lỗi
Biểu thức này phải có một giá trị không đổi.
này xảy ra khi một trường hợp chuyển đổi sử dụng một biến trong điều kiện của mình, như:
//this example throws the error
switch(true){
case foo == 1:
writeOutput('foo is 1');
break;
}
Sử dụng một công tắc (true) {...} tuyên bố với giá trị không đổi (tùy theo từng lỗi giải thích) làm làm việc:
//this example doesn't throw the error
switch(true){
case 1 == 1:
writeOutput('1 is 1');
break;
}
Có cách nào để nhận câu lệnh đầu tiên hoạt động trong Coldfusion không? Có lẽ với một đánh giá của các biến hoặc một số trick, hoặc là điều này một không xác định đi trong Coldfusion?
Không. Trừ khi họ đã thay đổi hành vi trong CF11, nó phải là một hằng số hoặc [được viết theo cách sao cho nó phù hợp với quy tắc không đổi] (http://stackoverflow.com/questions/31910902/coldfusion-cfscript-switch-case- trường hợp-giữa-một-phạm vi). – Leigh