Si je fais quelque chose comme ça dans ColdFusion:Pourquoi ColdFusion ajoute-t-il des espaces lorsque j'appelle une fonction dans cfoutput?
<cfoutput>foo="#foo()#"</cfoutput>
Le code HTML résultant a un espace devant lui:
foo=" BAR"
Cependant, si ce n'est pas une fonction appeler cela fonctionne très bien, à savoir :
<cfset fooOut=foo() />
<cfoutput>foo="#fooOut#"</cfoutput>
donne cette sortie:
foo="BAR"
D'où vient cet espace supplémentaire et y a-t-il quelque chose que je puisse faire à ce sujet?
Modifier Pour clarifier les choses, l'espace est pas dans la valeur retournée par ma fonction foo
:
<cffunction name="foo" access="public" returntype="string">
<cfreturn "BAR" />
</cffunction>
Mais j'ai aussi trouvé que cela ne se produit pas avec des fonctions intégrées , à savoir:
<cfoutput>"#UCase("bar")#"</cfoutput>
Prints:
"BAR"
Cependant, il arrive que je passe la sortie de ma fonction à la fonction intégrée (cette partie n'a aucun sens pour moi). i.e. .:
<cfoutput>"#UCase(foo())#"</cfoutput>
Prints:
" BAR"
Ceci est définitivement un hack et ne répond pas à votre question, mais avez-vous essayé d'utiliser la fonction Trim() pour supprimer les espaces? – dbyrne
@dbyrne: J'ai essayé ça, mais la valeur retournée par foo() n'a pas d'espace pour commencer, donc la garniture ne fait rien, et ensuite le résultat de trim reçoit un espace ajouté, tout comme le résultat de foo() – Kip