2013-04-25 18 views
7

Sto utilizzando ColdFusion 9 e ho controllato la documentazione, ma è ambigua.Le costanti sono supportate in ColdFusion?

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0999c-7ff1.html

(devo sfondo PHP e alla ricerca di qualcosa di simile a costanti PHP)

Grazie

+0

Il bit che dice _ "ColdFusion non consente di dare nomi alle costanti." _ Significa che non è possibile creare le proprie costanti (come è possibile con la funzione di definizione di PHP). Naturalmente puoi semplicemente utilizzare le variabili e le linee guida di codifica appropriate, come [Miguel descrive di seguito] (http://stackoverflow.com/questions/16220215/are-constants-supported-in-coldfusion#16220446). –

risposta

19

No, ColdFusion non ha costanti. Penso che nella maggior parte dei casi gli sviluppatori impostino semplicemente una variabile, utilizzando alcune convenzioni di denominazione come il nome della variabile in ALL_CAPITALS e quindi non cambino mai il valore. Questa non è una costante come in altre lingue e devi stare attento che il valore non sia cambiato (perché non è una costante vera). Ho fatto questo prima e in genere impostare queste "costanti" nell'ambito dell'applicazione in modo che siano prontamente disponibili.

C'è stato un enhancement request aperto qualche tempo fa. Tuttavia, sembra che sia stato chiuso e rinviato.

Adam Cameron blogged about this very thing last year e fa riferimento alla stessa richiesta di miglioramento.

10

No, non come funzione lingua nativa. il bit chiave nella pagina a cui è collegato è "ColdFusion non consente di dare nomi alle costanti"

Penso che la pagina stia davvero parlando di letterali, piuttosto che di costanti.

Se si desidera supportare le costanti non modificabili, penso che avresti bisogno di utilizzare un oggetto per incapsulare i valori:

component displayname="constant values for my app" { 
    property name="mailServer" default="127.0.0.1" getter=true setter=false 
    property name="password" default="supersecret" getter=true setter=false 
} 

È quindi possibile impostare questo in qualsiasi ambito di necessità (ad esempio, domanda o richiesta) quindi chiama application.constants.getMailServer()

Non è conciso come la soluzione @ Miguel-F, che è quella che userei la maggior parte del tempo, ma è qui come un'altra opzione.

Problemi correlati