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. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php