Per evitare le ifest annidate e migliorare la leggibilità, ho voluto creare una dichiarazione switch(true){ ... }
switch(true){ ... }
in Coldfusion. Ho usato questo spesso in php, ma quando provo questo nel Coldfusion, ottengo il seguente errore in fase di inizializzazione:switch (true) con casi dinamici in coldfusion?
errore Template
Questa espressione deve avere un valore costante.
Questo accade quando un caso switch utilizza una variabile nella sua condizione, come:
//this example throws the error
switch(true){
case foo == 1:
writeOutput('foo is 1');
break;
}
Utilizzando un interruttore (true) {...} dichiarazione con valori costanti (come l'errore spiega) fa lavoro:
//this example doesn't throw the error
switch(true){
case 1 == 1:
writeOutput('1 is 1');
break;
}
C'è un modo per far funzionare la prima istruzione in Coldfusion? Magari con una valutazione della variabile o qualche trucco, o è un deciso non andare in Coldfusion?
No. A meno che non abbiano cambiato il comportamento in CF11, deve essere una costante o [scritta in modo tale che sia conforme alla regola costante] (http://stackoverflow.com/questions/31910902/coldfusion-cfscript-switch-case- dove-case-tra-a-gamma). – Leigh