Re: Silly question - include vs. eval

From: Date: Thu, 12 Mar 2009 10:47:16 +0000
Subject: Re: Silly question - include vs. eval
References: 1 2 3 4 5 6 7 8 9 10 11 12 13  Groups: php.general 
Request: Send a blank email to php-general+get-289916@lists.php.net to get a copy of this message
On Wed, 2009-03-11 at 19:50 -0500, Shawn McKenzie wrote: > Robert Cummings wrote: > > On Wed, 2009-03-11 at 16:16 -0500, Shawn McKenzie wrote: > >> Shawn McKenzie wrote: > >>> Robert Cummings wrote: > >>>> On Wed, 2009-03-11 at 13:20 -0500, Shawn McKenzie wrote: > >>>>> Robert Cummings wrote: > >>>>>> On Wed, 2009-03-11 at 12:19 -0500, Shawn McKenzie wrote: > >>>>>>> Sándor Tamás (HostWare Kft . ) wrote: > >>>>>>>> Yes, Rob is right. My original question is about the > >>>>>>>> difference between > >>>>>>>> the processing of a file-based site with include() OR eval(). > >>>>>>>> In that > >>>>>>>> case, if I understood it correctly, the results are the same. > >>>>>>>> > >>>>>>>> But! If the included pages contain functions, classes, etc. > >>>>>>>> With eval(), > >>>>>>>> can I use them? With include(), I know I should be able to use > >>>>>>>> them. But > >>>>>>>> in some mysterious cases I don't have access to a > >>>>>>>> function. If I cut out > >>>>>>>> from the included file, and put in on the file which includes > >>>>>>>> that, just > >>>>>>>> before (or after) the includ(), I don't have any problem > >>>>>>>> with it. > >>>>>>>> > >>>>>>>> The next step, that if I include a file in a function, can I > >>>>>>>> use the > >>>>>>>> functions wrote in the included file? > >>>>>>>> As I know, include just makes a copy-paste, so if I use it IN > >>>>>>>> a > >>>>>>>> function, then all function will be in function scope, am I > >>>>>>>> right? > >>>>>>> Yes, if you use an include inside a function, then any functions / > >>>>>>> non > >>>>>>> global vars in the included file will only be available inside the > >>>>>>> including function. > >>>>>> This is NOT, I repeat, NOT true for functions. Functions are ALWAYS > >>>>>> global. > >>>>>> > >>>>>> Cheers, > >>>>>> Rob. > >>>>> Yes, I was too hasty. The nested function will only be defined once the > >>>>> nesting function has been called. Then it will be available globally. > >>>> Actually, you're wrong again. The nested function, AKA function defined > >>>> in the included source, will be defined as soon as the source is > >>>> included and is available to the function in which the source was > >>>> included. In fact it is even available to the code within the included > >>>> source that can be run during the include process and before the > >>>> function performing the inclusion regains control. > >>>> > >>>> Cheers, > >>>> Rob. > >>> Well I used the word defined, however what I meant was the included > >>> function would only be available globally after the including function > >>> has been called. But yes, it will be available to the including function. > >>> > >> Actually, which would mean that the including function had been called > >> if it was attempting to use any of the vars/functions in the included > >> file :-) > > > > You need to work on your use of verb tenses :) > > > > Cheers, > > Rob. > > What? I didn't know you flamed people whose native language wasn't > English! How can we get a break on this list? > > I speak Texan (sorta), and apologize for my poor English. :-( I wasn't flaming, I was providing insight into why your wording was confusing. If I had been flaming I would have used sarcasm or derogatory phrasing to demean your words. Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP

« previous php.general (#289916) next »