Funciones básicas en PHP: include() y require()

En realidad include() y require() no son funciones, realmente son declaraciones, pero como la documentación de PHP las engloba en funciones… pues yo también. Con ellas podemos insertar el contenido de un archivo php en otro archivo php (antes de que el servidor lo ejecute).

Esto nos ahorra mucho trabajo. Podemos crear una cabecera, un pie de página o un menú para todas nuestras páginas web. Cuando tengamos que hacer cambios en la cabecera modificaremos solo ese archivo pero los cambios se reflejarán en todas las páginas donde habíamos incluido ese archivo de cabecera.

include()

Supongamos que tenemos un archivo php como este:

cabecera.php
echo "INICIO FOTOS VIDEOS CONTACTO";
echo "<br />"; //salto de linea

Podemos usar la función include() para incluir ese archivo dentro de otro archivo php:

include('cabecera.php');
echo "esta línea está después del include";
INICIO FOTOS VIDEOS CONTACTO
esta línea está después del include

Si hubiera un error o el archivo no existiera habría una advertencia (E_WARNING), pero la carga del script continuaría:

include('noexiste.php');
echo "esta línea está después del include";
esta línea está después del include

También tenemos la función include_once.
Incluirá el archivo requerido solamente si no ha sido incluido anteriormente. La diferencia la vemos claramente en los siguiente ejemplos.

En el primer ejemplo incluimos dos veces el mismo archivo, y php lo pinta dos veces:

include('cabecera.php');
include('cabecera.php');
INICIO FOTOS VIDEOS CONTACTO
INICIO FOTOS VIDEOS CONTACTO

En este segundo ejemplo también incluimos dos veces el mismo archivo, pero la segunda vez lo hacemos con include_once y como el archivo ya está incluido solo se pinta una vez, la del primer include.

include('cabecera.php');
include_once('cabecera.php');
INICIO FOTOS VIDEOS CONTACTO

require()

La función require hace básicamente lo mismo que include pero en caso de fallo require producirá un error y detendrá el script, mientras que include nos permite continuar el script.

Si no hay errores el ejemplo sería el siguiente:

echo "antes del require <br />";
require('cabecera.php');
echo "después del require";
antes del require
INICIO FOTOS VIDEOS CONTACTO
después del require

Pero si hay errores o el archivo no existe se corta el script desde la línea del error, así:

echo "antes del require <br />";
require('noexiste.php');
echo "después del require";
antes del require

También existe la función require_once() que al igual que include_once incluirá el archivo requerido solamente si no ha sido incluido anteriormente.

require('cabecera.php');
require_once('cabecera.php'); //este archivo no se incluirá de nuevo
INICIO FOTOS VIDEOS CONTACTO

¿Cuando usar include() y cuando usar require()?

Si queremos que la ejecución siga y mostrarla a los usuarios, incluso si el archivo de inclusión falta, utilizaremos include().

De lo contrario, si el archivo es clave para el flujo de la ejecución debemos usar require(), esto ayudará a evitar poner en peligro la seguridad y la integridad de la aplicación, por si acaso un archivo clave falta accidentalmente.