String interpolazione:
<cfset name = "Danny" />
<cfset greeting = "Hello, #name#!" />
<!--- greeting is set to: "Hello, Danny!" --->
Auto-sfuggito interpolazione stringa cfquery
:
<cfset username = "dannyo'doule" ?>
<cfquery ...>
select u.[ID]
from [User] u
where u.[Username] = '#username#'
</cfquery>
<!--- the query is sent to the server (auto-escaped) as: --->
<!--- select u.[ID] from [User] u where u.[Username] = 'dannyo''doule' --->
<!--- note that the single-quote in the username has been escaped --->
<!--- by cfquery before being sent to the database server --->
Passaggio di argomenti complessi/attributi in CFML:
<cfset p = StructNew() />
<cfset p.firstName = "Danny" />
<cfset p.lastName = "Robinson" />
<cfmodule template="modules/view/person.cfm" person="#p#">
<!--- the variable Attributes.person will be --->
<!--- available in modules/view/person.cfm --->
Passando bozzetto argomenti LEX richiede #
firma solo in CFML, non in CFScript. Inoltre, è possibile passare qualsiasi tipo di valore: valori semplici, gli array, le strutture, cfcomponents, cffunctions, oggetti Java, gli oggetti COM, ecc
In tutti questi casi, il testo tra le #
segni non hanno essere il nome di una variabile. In effetti, può da qualsiasi espressione. Ovviamente, per l'interpolazione delle stringhe, l'espressione deve valutare un valore semplice, ma per l'argomento/l'attributo che passa in CFML, l'espressione può valutare anche qualsiasi valore complesso.
Ci vuole un po 'di tempo per imparare le regole. Ma in realtà non hai bisogno di usarlo più di tanto, e ti consiglio di provare a capire quando hai effettivamente bisogno di usarlo, e non usarlo quando non ne hai bisogno. Vedi la mia risposta qui sotto. – yfeldblum