Re: Silly question - include vs. eval
| From: | Robert Cummings | 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