Re: Silly question - include vs. eval

From: Date: Wed, 11 Mar 2009 23:54:54 +0000
Subject: Re: Silly question - include vs. eval
References: 1 2 3 4 5 6 7 8 9 10 11  Groups: php.general 
Request: Send a blank email to php-general+get-289908@lists.php.net to get a copy of this message
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. -- http://www.interjinn.com Application and Templating Framework for PHP

« previous php.general (#289908) next »