> dot notation means nothing to isdefined() Um, really? The following returns "NO" for me:
<cfset variables.myvar = 1> <cfoutput>#IsDefined("url.myvar")#</cfoutput> On Wed, Sep 1, 2010 at 11:16 AM, Russ Michaels <r...@michaels.me.uk> wrote: > > it depends how many vars you have in each scope. > If you have barely any then the search will be quick. > If you have a complex app with hundreds of vars then the result will of > course be different, especially if they are complex structs. > > There is also the fact that isdefined() will find the variable in ANY > scope, > which may not be the one you want. > > e.g. > isDefined('myvar') > would find > > variables.myvar > cookie.myvar > session.myvar > > etc > so if you are actually looking for myvar only in the form scope then this > could cause you issues, you also need to remember that dot notation means > nothing to isdefined(), so isDefined('form.myvar') could also find > > session.form.myvar > url.form.myvar > cookie.form.var > > etc > > On Wed, Sep 1, 2010 at 4:56 PM, Mark A. Kruger <mkru...@cfwebtools.com > >wrote: > > > > > Russ, > > > > You are correct about that - but it's not typically a performance problem > > in > > my view. More of a "buggy/security" type problem :) > > > > -Mark > > > > Mark A. Kruger, MCSE, CFG > > (402) 408-3733 ext 105 > > Skype: markakruger > > www.cfwebtools.com > > www.coldfusionmuse.com > > www.necfug.com > > > > > > > > -----Original Message----- > > From: Russ Michaels [mailto:r...@michaels.me.uk] > > Sent: Wednesday, September 01, 2010 10:51 AM > > To: cf-talk > > Subject: Re: CFParam vs. IsDefined > > > > > > 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:336718 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm