Incluyendo archivos
Las construcciones include y require son de las mas conocidas en php. Con ellas puedes reutilizar porciones de código (script, o simple html) cuantas veces quieras, siendo uno de sus usos mas sencillos y típicos el de incluir cabeceras y pies de páginas en un sistema de plantillas.
include
La sentencia include() inserta y evalúa el archivo especificado. Puedes incluir aqui no solamente un fichero en tu servidor, sino una página web remota (indicando la url). Su uso típico sería , que llama al archivo header.php y lo inserta en el propio punto del script donde hacemos la llamada. <?php include ("header.php");?>
Tanto si insertamos un archivo con include() o require(), debes tener en cuenta que PHP pasa a modo html hasta el final del mismo, por lo que si el archivo a insertar contiene código php que deba ser evaluado (ejecutado), debe ser encerrado dentro de etiquetas de comienzo y fin de PHP.
Puedes tambien utilizar varios include anidados (es decir, utilizar include para llamar a otro archivo, dentro del archivo a incluir), con la unica precaucion de tener en cuenta que los archivos que se van insertando se ejecutan en el entorno del archivo primero que contiene la llamada, lo que es importante al establecer los paths. Por ejemplo, si tienes dos archivos, footer.php y notes.php en un directorio llamado anexos y llamas al primero desde fuera de ese directorio, lo harias así: include (“anexos/footer.php”); y si footer.php contiene una llamada a otro archivo notes.php, debes escribir hacer la llamada tambien como include (“anexos/notes.php”); puesto que aunque footer y notes estan en el mismo directorio, la llamada a ambos es desde fuera, desde la misma posición que el script que hace la llamada.
Y lo mismo ocurre con las variables. El codigo insertado hereda el mismo alcance de variables que el código donde sea insertado.
require
La diferencia documentada entre include y require consistiría en que la llamada con include podría hacerse condicionalmente. A diferencia de include(), require() siempre leerá el archivo referenciado, incluso si la línea en que está no se ejecuta nunca. Si se quiere incluir condicionalmente un archivo, se usa include(). La sentencia conditional no afecta a require(), aunque si la línea en la cual aparece el require() no se ejecuta, tampoco se ejecutará el código del archivo referido.
Sin embargo, a partir de la version PHP 4.0.2 y posteriores esto ya no es asi y ambas construcciones se comportan exactamente de la misma manera, con la única diferencia de que si el archivo llamado no existe, include solo da una advertencia, y sigue ejecutando el código, mientras que require produce un error y interrumpe la ejecución.
include_once y require_once
Estas construcciones presentan como única diferencia que la inclusión del archivo se ejecuta una sola vez (aunque a lo largo de la ejecución del script existan otras llamadas al mismo), lo que es útil para evitar conflictos con redeficiones de funciones o nombres de variables.
