Wow. I had no idea you could wrap DE in Evaluate. Did you come figure this out through trial and error or have I just never read it?
Thanks for the post rex. On Tue, Sep 7, 2010 at 8:34 PM, rex <[email protected]> wrote: > > A lot of people get DE() wrong. > > IIF does not short-circuit > (http://en.wikipedia.org/wiki/Short-circuit_evaluation), meaning that > your DE() gets evaluated even if the condition is FALSE. So, this will > break: > #iif(false, notFalse, false)# > since notFalse does not exist. Same here: > #iif(true, true, fols)# > since fols does not exist. And finally your code: > #iif(false, DE(x.classAssign["#y#head"]), DE(''))# > breaks since x.classAssign["NAMEhead"] does not exist. > > DE evaluates a STRING parameter and finds double-quotes. If you pass in > a variable, it looks for the value of that variable. Since you are > passing x.classAssign["#y#head"], it looks for x.classAssign["NAMEhead"] > and breaks. > > This will work: evaluate(DE("x.classAssign['#y#head']")) - notice the > single-quotes surrounding #y#head! This is because we don't want DE to > escape this, so we don't want to wrap it around double-quotes! > > Here is the code (I used "no value" instead of "", but it's still the > same code that you use): > > <cfset x.classAssign = { > NameHead = "this head", > NoNameHead = "that head" > } /> > <cfoutput> > <cfset y = "Name" /> > #iif(StructKeyExists(x.classAssign,"#y#head"), > evaluate(DE("x.classAssign['#y#head']")), DE("no value"))#<hr /> > <cfset y = "NoExist" /> > #iif(StructKeyExists(x.classAssign,"#y#head"), > evaluate(DE("x.classAssign['#y#head']")), DE("no value"))#<hr /> > > <cfset Y = 'Any' /> > See how these two differ: <br /> > #DE("x.classAssign['#y#head']")#<br /> > #DE('x.classAssign["#y#head"]')# > </cfoutput> > > Michael Grant wrote: > > HA! So I'm not the only one! > > So I thought DE meant "Delay Evaluation" as in "Don't evaluate what's in > > these little brackets this until you've satisfied the IIF condition." > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:336886 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

