gratiszona

include()

La sentencia include() incluye y evalua el archivo especificado.
Si "URL fopen wrappers"esta activada en PHP (como esta en la configuracion inicial), se puede especificar el fichero que
se va a incluir usando una URL en vez de un fichero local (con su Path) Ver Ficheros remotos y fopen() para mas
informacion.
Un punto importante sobre su funcionamiento es que cuando un archivo se incluye con include() o se requiere con
require(), el interprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado y vuelve de nuevo
al modo PHP al final. Por esta razon, cualquier codigo dentro del archivo referenciado que debiera ser ejecutado como
codigo PHP debe ser encerrado dentro de etiquetas validas de comienzo y fin de PHP.
Esto sucede cada vez que se encuentra la sentencia include(), asi que se puede usar una sentencia include() dentro de una
estructura de bucle para incluir un numero de archivos diferentes.
$archivos = array (’primero.inc’, ’segundo.inc’, ’tercero.inc’);
for ($i = 0; $i < count($archivos); $i++) {
include $archivos[$i];
}

include() difiere de require() en que la sentencia include se re-evalua cada vez que se encuentra (y solo cuando esta siendo
ejecutada), mientras que la sentencia require() se reemplaza por el archivo referenciado cuando se encuentra por primera
vez, se vaya a evaluar el contenido del archivo o no (por ejemplo, si esta dentro de una sentencia if cuya condicion
evaluada es falsa).
Debido a que include() es una construccion especial del lenguaje, se debe encerrar dentro de un bloque de sentencias si
esta dentro de un bloque condicional.
/* Esto es ERRoNEO y no funcionara como se desea. */
if ($condicion)
include($archivo);
else
include($otro);
/* Esto es CORRECTO. */
if ($condicion) {
include($archivo);
} else {
include($otro);
}

En ambos, PHP3 y PHP4, es posible ejecutar una sentencia return dentro de un archivo incluido con include(), para terminar el procesado de ese archivo y volver al archivo de comandos que lo llamo.
Existen algunas diferencias en el modo en que esto funciona, no obstante. La primera es que en PHP3, return no puede aparecer dentro de un bloque a menos que sea un bloque de funcion, en el cual return se aplica a esa funcion y no al archivo completo.
En PHP4, no obstante, esta restriccion no existe. tambien, PHP4 permite devolver valores desde archivos incluidos con include().
Se puede capturar el valor de la llamada a include() como se haria con una funcion normal.
Esto genera un error de interprete en PHP3.
Ejemplo de include() en PHP3 y PHP4
Asumamos la existencia del siguiente archivo (llamado test.inc) en el mismo directorio que el archivo principal:
<?php
echo "Antes del return <br>\n";
if (1 ) {

return 27;
}
echo "despues del return <br>\n";
?>

Asumamos que el archivo principal (main.html) contiene lo siguiente:
<?php
$retval = include(’test.inc’ );
echo "El archivo devolvio: ’$retval’<br>\n";
?>

Cuando se llama a main.html en PHP3, generara un error del interprete en la linea 2; no se puede capturar el valor de un
include() en PHP3. En PHP4, no obstante, el resultado sera:
Antes del return
El archivo devolvio: ’27’
Anterior: require en php
Siguiente: require once en php