2010-08-06 17 views
7

¿Estaré bien haciendo esto?PHP incluir archivo en foreach Loop

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

Dónde script externo es de alrededor de 800 líneas de código que quieren mantener separada por el bien de la organización.

Gracious!

+5

........ Así que, estoy manteniendo una pila de 30,000 slop donde el programador lo hace todo el tiempo. Si usted es él, ¿puedo darle un puñetazo por Internet? – Incognito

+0

@Incognito, ¿Quiere decir 30k líneas en un solo archivo o quiere decir un * total * de 30k líneas? – Pacerier

Respuesta

4

Funcionará, pero hay una sobrecarga de E/S de disco para llamar a un archivo externo en un bucle, a menos que tenga en ejecución APC, XCache, eAccelerator. Además, no puedes usar include. Debería utilizar include_once si es el mismo archivo que está cargando

+0

En cierta situación en el host ipage.com, hacer esto me da un error de 500 servidores. – atwellpub

+1

Muchas cosas pueden causar un error de servidor de 500. Tal vez deberías comenzar un nuevo Q & A. – stillstanding

7

Supongo que debería usar mejor una función para esto.

Incluir un archivo requiere leer, analizar e interpretar el archivo. Pero si tiene una función que acaba de alimentar con el número $item actual, su código solo se leerá, analizará e interpretará una vez y no tendrá esa sobrecarga con la que debe incluir.

+1

+1 pero es más probable que tenga varias funciones si es 800 LOC. – Gordon

+1

Un problema que veo al convertirlo en una función sería tener que pasar variables a la función, y hay más de 80 variables que usa el LOC. – atwellpub

+0

@atwellpub: ¿Estas son todas las variables que se definieron en algún lugar anteriormente? – Gumbo

1

Si está bien o no depende de si desea incluir su script externo en cada iteración o no.

Tenga en cuenta que si su archivo incluido contiene funciones, terminará con errores al tratar de definir la misma función varias veces.

0

ermmmm - por qué?

si es el mismo archivo, inclúyalo una vez; quizás ponga el código en una función y llame a esa función cuantas veces lo necesite.

+0

Es una forma de hacer las funciones del pobre hombre. – Pacerier

1

No hieres que un dios te mate por eso, e incluso funcionaría. Pero aún la función es mejor.

-5

Creo que debería considerar utilizar la función eval() en su lugar.