tags:

views:

52

answers:

5

Hey Guys

Will I be ok doing this?

foreach ($item as $val)
{
    include('external_script.php');
} 

Where external script is about 800 lines of code I want to keep separate for organizational sakes.

Gracious!

+4  A: 

I guess you should better use a function for this.

Including a file requires to read, parse, and interpret the file. But if you have a function that you just feed with the current $item, it its code is just read, parsed and interpreted once and you won’t have that overhead you would have with including.

Gumbo
+1 but more likely several functions if it's 800 LOC.
Gordon
A problem I see with making it a function would be having to pass variables into the function, and there are 80+ variables that the LOC use.
atwellpub
@atwellpub: Are these all variables that are defined somewhere before?
Gumbo
Encapsulate all of those variables in a class? It definitely sounds like there are some design problems here.
ladenedge
@atwellpub the more details coming, the worse it seems. why not to tell us the whole story at once, instead of feedeng by small chunks?
Col. Shrapnel
I would need to learn how to encapsulate variables in a class, then a function sounds to be the best solution. Will there be any speed difference between a function and include_once?
atwellpub
+1  A: 

Whether you will be okay or not depends on if you want to include your external script in each iteration or not.

Note that if your included file contains functions, you will end up with errors for trying to define the same function multiple times.

Daniel Vandersluis
A: 

ermmmm - why?

if its the same file include it once - perhaps put the code in it in a function and just call that function how ever many times you need to.

ToonMariner
A: 

You wound not be killed by a god for doing that, and it would even work. But still function is better.

BarsMonster
+1  A: 

It will work but there's a disk I/O overhead for calling an external file in a loop unless you happen to have APC, XCache, eAccelerator running. Besides, you can't use include. You should be using include_once if it's the same file you're reloading

stillstanding
In a certain situation on host ipage.com, doing this gives me a 500 server error.
atwellpub
stillstanding