Cfset inside a function is not varred unless you put var in front.

Variables with no scope infront and no var are local to the Cfc or template
but bear in mind if you persist a Cfc or udf in a shared scope like
application or session the data may persist across requests or in your case
pages

Alex

On Thursday, 5 April 2012, Benjamin Davis <[email protected]>
wrote:
> I was thinking that by default <cfset> inside of a function is considered
a <cfset var>.  I am incorrect on this?  If not, does that mean that every
<cfset> that I do on a single page (outside of a function) should also be
var'd?
>
> On Thu, Apr 5, 2012 at 12:47 PM, Alex Skinner <[email protected]> wrote:
>>
>> No because they need to be varred.
>>
>> On Thursday, 5 April 2012, Benjamin Davis <[email protected]>
wrote:
>> > Thanks Alan!
>> > I see what part of the problem here is.  When you dumped the variables
on the index page, it is coming through the call of the
scanner.LoadTemplate, which has access to the full cfc.  So, to test this.
 I created another function in the scanner.cfc which just returned "Hi" and
then I called it from the index.cfm page
with <cfoutput>#testing()#</cfoutput> and I get "Hi" on my page, so the
index.cfm has full access to the scanner.cfc......
>> > I guess that I'm going to have to think this through a little bit more
and come up with a better solution.
>> > The strange thing still though, is that shouldn't each call to the
function reset its local variables?  For example, if I do a dump of the
variables scope inside of my LoadTemplate function, each call to the
function has the exact same variables.  Shouldn't this be reset with each
call?
>> > Thanks for the name info.  I didn't realize that I had done that as I
was throwing this together.
>> >
>> > On Tue, Apr 3, 2012 at 9:29 PM, Alan Holden <[email protected]> wrote:
>> >
>> > It would be nice if we could post the salient parts of this code right
in the mailing list, if you don't mind. You might get a broader response
that way.
>> >
>> > NOTE: I get the same results from ACF9 as from OpenBD 2.02...  G G G
Ghost Vars!! RUN! AAAAyyyyeeeeee!!
>> >
>> > I put this line <cfdump var="#variables#"> at the end of your
index.cfm file, and I can see all the things that CF considers
"un-scoped".  For example, while you DO scope application.Scanner on
startup, this object has 2 methods within (LoadTemplate & LoadPage) that
have popped up in the "variables" scope at the time the dump is called.
>> >
>> > I think the issue might come from using the OnRequest() method as the
"code shell" for the whole page; also perhaps that the methods in
scanner.cfc are not well encapsulated. They read from external scopes and
write directly to the page, as opposed to [returning values back - from
input arguments passed in], like most well-behaved functions.
>> >
>> > Here are some quasi-related conversations I found - that might help:
>> > http://forums.adobe.com/message/2285269
>> >
http://stackoverflow.com/questions/8188015/do-variables-inside-application-cfc-functions-need-scoping
>> > http://forums.adobe.com/thread/604831
>> >
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=appFramework_04.html
>> >
>> > Finally, your application is named "Scanner", and you've also created
an object named "Scanner" within it. Despite the referential separation by
tiny dots, some people would cringe and shudder at such a naming practice.
>> >
>> > Al
>> >
>> >
>> > On 4/3/2012 8:29 AM, Benjamin Davis wrote:
>> >
>> > Hey Alan,
>> > Thanks for the info.  Attached is a zip file with the basic of basics.
 In this example, the index.cfm file sets a variable and then when you to
go page2.cfm, the variable is displayed, even though that page never
specifically sets the variable.  Let me know what you think.
>> > Thanks!
>> > Ben
>> >
>> > On Mon, Apr 2, 2012 at 5:54 PM, Alan Holden <[email protected]> wrote:
>> >
>> > It certainly seems like something (perhaps that function) is
definitely causing the variables scope to go zombie on you. But you may
need to whittle your code down to a core sample and actually post that - to
get the greatest qty of help.
>> >
>> > Alan Holden
>> > (at work)
>> >
>> >
>> > On 4/2/2012 2:35 PM, Ben wrote:
>> >
>> > So, I have an interesting case that needs some external thought.  I've
created a "framework" that handles all of my security as well as combining
the page that is requested into a template file.  I've made this into a cfc
that is loaded into the Application Scope.  In my OnRequest function, I
call another function of my framework that loads any external files, the
requested file, and then the template file where everything gets combined.
 This has been working great, but then I realized that if
>>
>> --
>> online documentation: http://openbd.org/manual/
>> google+ hints/tips: https://plus.google.com/115990347459711259462
>> http://groups.google.com/group/openbd?hl=en
>
> --
> online documentation: http://openbd.org/manual/
> google+ hints/tips: https://plus.google.com/115990347459711259462
> http://groups.google.com/group/openbd?hl=en
>

-- 
Alex Skinner
Managing Director
Pixl8 Interactive

Tel: +448452600726
Email: [email protected]
Web: pixl8.co.uk

-- 
online documentation: http://openbd.org/manual/
   google+ hints/tips: https://plus.google.com/115990347459711259462
     http://groups.google.com/group/openbd?hl=en

Reply via email to