FWIW, the following two tickcounts are nearly identical on my localhost so
the reason to use one over the other (cfparam versus isdefined/set) is
likely not due to performance...

<cfset starttick = getTickCount()>

<cfloop index="i" from="1" to="10000">
<cfparam default="#i#" name="variables.var#i#">
</cfloop>

<cfoutput>#Evaluate(getTickCount() - starttick)#</cfoutput>

<cfset starttick = getTickCount()>

<cfloop index="i" from="1" to="10000">
<cfif not IsDefined("variables.anothervar" & i)>
<cfset SetVariable("variables.anothervar" & i, i)>
</cfif>
</cfloop>

<cfoutput>#Evaluate(getTickCount() - starttick)#</cfoutput>

On Wed, Sep 1, 2010 at 10:50 AM, Russ Michaels <r...@michaels.me.uk> wrote:

>
> defo better to make sure they are defined.
> Also using isDefined() is also bad as this search every single scope for
> your variable and is thus quite slow and can potentially cause timeouts.
> Much better to use StructKeyExists() and only test the scope your variable
> is in.
>
> --
> Russ Michaels
> www.cfmldeveloper.com
> Supporting the cf community since 1999
> FREE ColdFusion/Railo hosting for developers.
>
>
> On Wed, Sep 1, 2010 at 4:40 PM, DURETTE, STEVEN J (ATTASIAIT) <
> sd1...@att.com> wrote:
>
> >
> > Using your way ensures that any variables that you are using already
> > exist.
> >
> > I was always taught that I should define my variables before I use them
> > in code (my ancient programming college courses).  So, I tend to follow
> > your method.
> >
> > Also, from a security stand, you should already know what should be
> > coming into your page. If it isn't there then something went wrong. And
> > if you didn't define it and it is there you should be ignoring it.
> >
> > Steve
> >
> > -----Original Message-----
> > From: Michael Grant [mailto:mgr...@modus.bz]
> > Sent: Wednesday, September 01, 2010 11:36 AM
> > To: cf-talk
> > Subject: CFParam vs. IsDefined
> >
> >
> > I prefer to CFParam my vars with a default value of a zero len string or
> > a 0
> > for numeric values. Then I skip the isdefined and just test against the
> > value. Well recently someone I know said that it's better to test if
> > it's
> > defined. Is there a pro or con to doing it my way vs. IsDefined ?
> >
> > Thanks.
> >
> >
> >
> >
> >
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
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:336714
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to